Jerry Hoemann
2b3d89b402
watchdog: hpwdt: Remove legacy NMI sourcing.
...
Gen8 and prior Proliant systems supported the "CRU" interface
to firmware. This interfaces allows linux to "call back" into firmware
to source the cause of an NMI. This feature isn't fully utilized
as the actual source of the NMI isn't printed, the driver only
indicates that the source couldn't be determined when the call
fails.
With the advent of Gen9, iCRU replaces the CRU. The call back
feature is no longer available in firmware. To be compatible and
not attempt to call back into firmware on system not supporting CRU,
the SMBIOS table is consulted to determine if it is safe to
make the call back or not.
This results in about half of the driver code being devoted
to either making CRU calls or determing if it is safe to make
CRU calls. As noted, the driver isn't really using the results of
the CRU calls.
Furthermore, as a consequence of the Spectre security issue, the
BIOS/EFI calls are being wrapped into Spectre-disabling section.
Removing the call back in hpwdt_pretimeout assists in this effort.
As the CRU sourcing of the NMI isn't required for handling the
NMI and there are security concerns with making the call back, remove
the legacy (pre Gen9) NMI sourcing and the DMI code to determine if
the system had the CRU interface.
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2018-03-03 15:52:33 +01:00
..
acquirewdt.c
advantechwdt.c
watchdog: advantechwdt: mark expected switch fall-through
2017-12-28 20:45:28 +01:00
alim1535_wdt.c
watchdog: alim1535_wdt: mark expected switch fall-through
2017-12-28 20:45:28 +01:00
alim7101_wdt.c
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
ar7_wdt.c
asm9260_wdt.c
watchdog: asm9260_wdt: don't round closest with get_timeleft
2017-09-09 20:25:34 +02:00
aspeed_wdt.c
watchdog: aspeed: Move init to arch_initcall
2017-12-28 20:44:50 +01:00
at91rm9200_wdt.c
at91sam9_wdt.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
at91sam9_wdt.h
ath79_wdt.c
mips: separate extable.h, switch module.h to it
2016-10-05 18:36:18 -04:00
atlas7_wdt.c
watchdog: constify watchdog_ops structures
2017-02-24 14:00:23 -08:00
bcm47xx_wdt.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
bcm63xx_wdt.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
bcm2835_wdt.c
scripts/spelling.txt: add "partiton" pattern and fix typo instances
2017-02-27 18:43:46 -08:00
bcm7038_wdt.c
watchdog: bcm7038: Check the return value from clk_prepare_enable()
2017-09-09 20:52:13 +02:00
bcm_kona_wdt.c
watchdog: bcm281xx: Fix use of uninitialized spinlock.
2017-05-19 10:42:25 +02:00
bfin_wdt.c
booke_wdt.c
watchdog: constify watchdog_ops structures
2017-02-24 14:00:23 -08:00
cadence_wdt.c
watchdog: cadence_wdt: Show information when driver is probed
2017-09-09 20:35:31 +02:00
coh901327_wdt.c
watchdog: coh901327_wdt: constify watchdog_ops structure
2017-09-09 20:06:38 +02:00
cpu5wdt.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
cpwd.c
watchdog: cpwd: Convert timers to use timer_setup()
2017-11-02 15:50:26 -07:00
da9052_wdt.c
watchdog: da9052_wdt: Convert to use device managed functions
2017-02-24 14:00:23 -08:00
da9055_wdt.c
watchdog: da9055_wdt: Convert to use device managed functions
2017-02-24 14:00:23 -08:00
da9062_wdt.c
watchdog: da9062: use protection delay mechanism from core
2017-12-28 20:45:08 +01:00
da9063_wdt.c
watchdog: da9063_wdt: Simplify by removing unneeded struct...
2017-09-09 20:55:26 +02:00
davinci_wdt.c
watchdog: davinci_wdt: add restart function
2017-12-28 20:45:56 +01:00
diag288_wdt.c
watchdog: constify watchdog_ops and watchdog_info structures
2017-09-09 20:29:53 +02:00
digicolor_wdt.c
watchdog: constify watchdog_ops structures
2017-02-24 14:00:23 -08:00
dw_wdt.c
watchdog: dw_wdt: add stop watchdog operation
2017-12-28 20:44:55 +01:00
ebc-c384_wdt.c
watchdog: ebc-c384_wdt: Utilize devm_ functions in driver probe callback
2017-02-24 14:00:23 -08:00
ep93xx_wdt.c
watchdog: ep93xx_wdt: cleanup and let the core handle the heartbeat
2017-02-24 14:00:23 -08:00
eurotechwdt.c
watchdog: eurotechwdt: mark expected switch fall-through
2017-12-28 20:45:51 +01:00
f71808e_wdt.c
watchdog: f71808e_wdt: Fix magic close handling
2018-03-03 15:52:32 +01:00
ftwdt010_wdt.c
watchdog: ftwdt010: Make interrupt optional
2017-12-28 20:45:02 +01:00
gef_wdt.c
geodewdt.c
gpio_wdt.c
watchdog: gpio_wdt: set WDOG_HW_RUNNING in gpio_wdt_stop
2017-12-28 20:45:36 +01:00
hpwdt.c
watchdog: hpwdt: Remove legacy NMI sourcing.
2018-03-03 15:52:33 +01:00
i6300esb.c
watchdog: i6300esb: remove info message and version number
2017-12-28 20:45:18 +01:00
ib700wdt.c
watchdog: ib700wdt: mark expected switch fall-through
2017-12-28 20:45:52 +01:00
ibmasr.c
ie6xx_wdt.c
imgpdc_wdt.c
watchdog: constify watchdog_info structures
2017-02-24 14:00:23 -08:00
imx2_wdt.c
watchdog: imx2_wdt: restore previous timeout after suspend+resume
2018-01-21 12:44:58 +01:00
indydog.c
intel-mid_wdt.c
watchdog: intel-mid_wdt: Keep watchdog running
2017-06-05 20:37:35 +02:00
intel_scu_watchdog.c
intel_scu_watchdog.h
iop_wdt.c
it87_wdt.c
watchdog: it87_wdt: constify watchdog_ops structure
2017-09-09 20:06:25 +02:00
it8712f_wdt.c
iTCO_vendor.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
iTCO_vendor_support.c
iTCO_wdt.c
watchdog: Revert "iTCO_wdt: all versions count down twice"
2017-09-09 17:41:24 +02:00
ixp4xx_wdt.c
jz4740_wdt.c
watchdog: jz4740: Add support for the watchdog in jz4780 SoC
2017-12-28 20:44:44 +01:00
Kconfig
watchdog: sp5100_tco.c: fix potential build failure
2018-02-19 17:44:05 +01:00
kempld_wdt.c
watchdog: kempld: fix gcc-4.3 build
2017-03-01 06:15:10 -08:00
ks8695_wdt.c
lantiq_wdt.c
watchdog: lantiq: access boot cause register through regmap
2017-09-04 13:53:15 +02:00
loongson1_wdt.c
watchdog: loongson1: Add Loongson1 SoC watchdog driver
2016-12-16 06:53:55 -08:00
lpc18xx_wdt.c
watchdog: lpc18xx_wdt: Convert timers to use timer_setup()
2017-11-02 15:50:30 -07:00
m54xx_wdt.c
machzwd.c
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
Makefile
linux-watchdog 4.16-rc1 merge window tag
2018-02-07 11:54:34 -08:00
max63xx_wdt.c
max77620_wdt.c
watchdog: max77620_wdt: constify platform_device_id
2017-09-09 20:40:39 +02:00
mei_wdt.c
watchdog: mei_wdt: don't use of variable length array
2017-12-28 20:45:23 +01:00
mena21_wdt.c
watchdog: mena21_wdt: Convert to use device managed functions and other improvements
2017-02-24 14:00:23 -08:00
menf21bmc_wdt.c
meson_gxbb_wdt.c
watchdog: meson: Handle return value of clk_prepare_enable
2017-07-03 11:02:31 +02:00
meson_wdt.c
watchdog: meson-wdt: add support for the watchdog on Meson8 and Meson8m2
2017-09-09 20:14:01 +02:00
mixcomwd.c
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
moxart_wdt.c
mpc8xxx_wdt.c
watchdog: mpc8xxx: use the core worker function
2017-12-28 20:45:36 +01:00
mt7621_wdt.c
watchdog: mt7621: switch to using managed devm_watchdog_register_device()
2018-01-21 12:44:59 +01:00
mtk_wdt.c
mtx-1_wdt.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
mv64x60_wdt.c
ni903x_wdt.c
nic7018_wdt.c
watchdog: nic7018_wdt: Add NIC7018 watchdog driver
2017-02-24 14:00:23 -08:00
nuc900_wdt.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
nv_tco.c
watchdog: add support for MCP78S chipset in nv_tco
2016-07-17 21:04:13 +02:00
nv_tco.h
octeon-wdt-main.c
watchdog: octeon-wdt: Add support for 78XX SOCs.
2017-09-04 21:19:03 +02:00
octeon-wdt-nmi.S
watchdog: octeon-wdt: Remove old boot vector code.
2017-09-04 21:19:03 +02:00
of_xilinx_wdt.c
watchdog: of_xilinx_wdt: Add suspend/resume support
2017-09-09 20:48:18 +02:00
omap_wdt.c
omap_wdt.h
orion_wdt.c
watchdog: orion: fix typo
2017-12-28 20:44:57 +01:00
pc87413_wdt.c
Annotate hardware config module parameters in drivers/watchdog/
2017-04-20 12:02:32 +01:00
pcwd.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
pcwd_pci.c
watchdog: pcwd_pci: mark expected switch fall-through
2017-12-28 20:45:29 +01:00
pcwd_usb.c
watchdog: pcwd_usb: remove unneeded DRIVER_LICENSE #define
2017-12-28 20:45:50 +01:00
pic32-dmt.c
watchdog: pic32-dmt: Remove .owner field for driver
2016-07-25 12:02:32 +02:00
pic32-wdt.c
watchdog: pic32-wdt: Fix return value check in pic32_wdt_drv_probe()
2016-07-25 12:02:43 +02:00
pika_wdt.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
pnx833x_wdt.c
pnx4008_wdt.c
pretimeout_noop.c
watchdog: pretimeout: add noop pretimeout governor
2016-10-08 10:27:13 +02:00
pretimeout_panic.c
watchdog: pretimeout: add panic pretimeout governor
2016-10-08 10:27:17 +02:00
qcom-wdt.c
watchdog: qcom: Check for platform_get_resource() failure
2017-09-09 20:50:35 +02:00
rave-sp-wdt.c
watchdog: Add RAVE SP watchdog driver
2018-01-08 10:08:36 +00:00
rc32434_wdt.c
rdc321x_wdt.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
renesas_wdt.c
watchdog: renesas_wdt: update copyright dates
2017-09-09 21:11:58 +02:00
retu_wdt.c
riowd.c
rn5t618_wdt.c
watchdog: constify watchdog_info structures
2017-02-24 14:00:23 -08:00
rt2880_wdt.c
watchdog: constify watchdog_ops and watchdog_info structures
2017-09-09 20:29:53 +02:00
rtd119x_wdt.c
watchdog: Add Realtek RTD1295
2017-12-28 20:44:39 +01:00
rza_wdt.c
watchdog: add rza_wdt driver
2017-06-05 20:37:17 +02:00
s3c2410_wdt.c
watchdog: s3c2410: Minor code cleanup
2017-06-05 20:38:52 +02:00
sa1100_wdt.c
watchdog: sa11x0/pxa: fix error path of driver initialization
2017-02-24 14:00:23 -08:00
sama5d4_wdt.c
watchdog: sama5d4: Add comment explaining what happens on resume
2017-06-05 17:58:39 +02:00
sb_wdog.c
sbc60xxwdt.c
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
sbc7240_wdt.c
sbc8360.c
sbc_epx_c3.c
sbc_fitpc2_wdt.c
sbsa_gwdt.c
watchdog: sbsa: use 32-bit read for WCV
2018-03-03 15:52:32 +01:00
sc520_wdt.c
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
sc1200wdt.c
watchdog: sc1200: constify pnp_device_id
2017-09-09 21:14:46 +02:00
sch311x_wdt.c
scx200_wdt.c
shwdt.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
sirfsoc_wdt.c
watchdog: constify watchdog_ops structures
2017-02-24 14:00:23 -08:00
smsc37b787_wdt.c
softdog.c
watchdog: softdog: fire watchdog even if softirqs do not get to run
2017-03-01 06:15:10 -08:00
sp805_wdt.c
watchdog: sp805: constify amba_id
2017-09-09 21:17:44 +02:00
sp5100_tco.c
watchdog: sp5100_tco: Add support for recent FCH versions
2018-01-21 12:56:37 +01:00
sp5100_tco.h
watchdog: sp5100_tco: Add support for recent FCH versions
2018-01-21 12:56:37 +01:00
sprd_wdt.c
watchdog: Add Spreadtrum watchdog driver
2017-12-28 20:45:40 +01:00
st_lpc_wdt.c
watchdog: st_wdt: Remove support for obsolete platforms
2016-09-24 08:59:49 +02:00
stm32_iwdg.c
watchdog: stm32: Fix copyright
2017-12-28 20:45:51 +01:00
stmp3xxx_rtc_wdt.c
sun4v_wdt.c
watchdog: constify watchdog_ops structures
2017-02-24 14:00:23 -08:00
sunxi_wdt.c
watchdog: sunxi_wdt: use of_device_get_match_data
2017-12-28 20:45:12 +01:00
tangox_wdt.c
watchdog: tangox: Use watchdog core to install restart handler
2017-02-24 14:00:23 -08:00
tegra_wdt.c
watchdog: tegra_wdt: Convert to use device managed functions
2017-02-24 14:00:23 -08:00
ts72xx_wdt.c
watchdog: ts72xx_wdt: constify watchdog_ops structure
2017-09-09 20:06:14 +02:00
ts4800_wdt.c
twl4030_wdt.c
mfd: twl: Move header file out of I2C realm
2017-09-04 14:41:02 +01:00
txx9wdt.c
watchdog: txx9wdt: Add missing clock (un)prepare calls for CCF
2016-09-23 22:36:32 +02:00
uniphier_wdt.c
watchdog: uniphier: add UniPhier watchdog driver
2017-07-03 13:58:55 +02:00
ux500_wdt.c
via_wdt.c
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
w83627hf_wdt.c
watchdog: w83627hf: make const array chip_name static
2017-09-09 20:08:03 +02:00
w83877f_wdt.c
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
w83977f_wdt.c
wafer5823wdt.c
watchdog_core.c
watchdog: document watchdog_init_timeout() wdd parameter
2017-12-28 20:45:56 +01:00
watchdog_core.h
watchdog_dev.c
watchdog: core: make sure the watchdog_worker is not deferred
2018-01-21 12:44:59 +01:00
watchdog_pretimeout.c
watchdog: pretimeout: add pretimeout_available_governors attribute
2016-10-08 10:27:24 +02:00
watchdog_pretimeout.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
wd501p.h
wdat_wdt.c
watchdog: wdat_wdt: Ping the watchdog on resume
2016-10-21 01:28:33 +02:00
wdrtas.c
wdt.c
Annotate hardware config module parameters in drivers/watchdog/
2017-04-20 12:02:32 +01:00
wdt285.c
wdt977.c
wdt_pci.c
watchdog: wdt_pci: mark expected switch fall-through
2017-12-28 20:45:30 +01:00
wm831x_wdt.c
watchdog: wm831x_wdt: Convert to use device managed functions
2017-02-24 14:00:23 -08:00
wm8350_wdt.c
xen_wdt.c
watchdog: xen_wdt: remove info message and version number
2017-12-28 20:45:44 +01:00
ziirave_wdt.c
watchdog: ziirave: constify i2c_device_id
2017-09-09 21:16:17 +02:00
zx2967_wdt.c
watchdog: zx2967: explicitly request exclusive reset control
2017-09-09 20:18:43 +02:00