linux-stable/drivers/watchdog
Jerry Hoemann 77fbdd1e2a watchdog: hpwdt: Remove legacy NMI sourcing.
commit 2b3d89b402 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-03-15 10:54:22 +01:00
..
acquirewdt.c
advantechwdt.c
alim1535_wdt.c
alim7101_wdt.c
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: Support configuration of external signal properties 2017-09-09 21:05:07 +02:00
at32ap700x_wdt.c
at91rm9200_wdt.c Merge git://www.linux-watchdog.org/linux-watchdog 2015-09-11 15:12:59 -07:00
at91sam9_wdt.c watchdog: at91sam9: get and use slow clock 2015-09-09 21:38:52 +02:00
at91sam9_wdt.h watchdog: add a driver to support SAMA5D4 watchdog timer 2015-09-09 21:38:29 +02:00
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 watchdog: bcm47xx_wdt: constify bcm47xx_wdt_hard_ops and bcm47xx_wdt_soft_ops 2017-07-03 13:53:28 +02:00
bcm63xx_wdt.c
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 Annotate hardware config module parameters in drivers/watchdog/ 2017-04-20 12:02:32 +01:00
cpwd.c watchdog: cpwd: remove memory allocate failure message 2016-12-16 06:53:55 -08: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_wdt: Convert to use device managed functions 2017-02-24 14:00:23 -08: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: Add missing clk_disable_unprepare(). 2017-07-03 11:02:43 +02: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: get reset lines from dt 2017-07-03 10:52:04 +02: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 Annotate hardware config module parameters in drivers/watchdog/ 2017-04-20 12:02:32 +01:00
f71808e_wdt.c watchdog: f71808e_wdt: Add F71868 support 2017-06-05 20:43:01 +02:00
gef_wdt.c watchdog: Fix module autoload for OF platform driver 2015-09-28 10:56:01 +02:00
gemini_wdt.c watchdog: add driver for Cortina Gemini watchdog 2017-02-24 14:00:23 -08:00
geodewdt.c
gpio_wdt.c watchdog: gpio_wdt: set WDOG_HW_RUNNING in gpio_wdt_stop 2018-02-16 20:22:44 +01:00
hpwdt.c watchdog: hpwdt: Remove legacy NMI sourcing. 2018-03-15 10:54:22 +01:00
i6300esb.c
ib700wdt.c
ibmasr.c
ie6xx_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
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-02-16 20:23:04 +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: Fix modular build 2016-12-16 06:53:54 -08:00
Kconfig watchdog: indydog: Add dependency on SGI_HAS_INDYDOG 2018-02-16 20:22:42 +01:00
kempld_wdt.c watchdog: kempld: fix gcc-4.3 build 2017-03-01 06:15:10 -08:00
ks8695_wdt.c char: make misc_deregister a void function 2015-08-05 10:35:49 -07:00
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: constify watchdog_info structures 2017-02-24 14:00:23 -08:00
m54xx_wdt.c
machzwd.c
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
max63xx_wdt.c watchdog: max63xx: make module's license marker match the header 2016-01-31 16:51:56 +01:00
max77620_wdt.c watchdog: max77620_wdt: constify platform_device_id 2017-09-09 20:40:39 +02:00
mei_wdt.c watchdog: mei_wdt: constify mei_cl_device_id 2017-09-09 21:19:58 +02: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 Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
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
moxart_wdt.c watchdog: Add 'action' and 'data' parameters to restart handler callback 2016-03-01 15:36:35 +01:00
mpc8xxx_wdt.c watchdog: mpc8xxx: Remove unneeded linux/miscdevice.h include 2016-12-16 06:53:55 -08:00
mt7621_wdt.c watchdog: constify watchdog_ops and watchdog_info structures 2017-09-09 20:29:53 +02:00
mtk_wdt.c watchdog: Add 'action' and 'data' parameters to restart handler callback 2016-03-01 15:36:35 +01:00
mtx-1_wdt.c
mv64x60_wdt.c
ni903x_wdt.c watchdog: ni903x_wdt: Add NI 903x/913x watchdog driver 2016-03-01 16:25:39 +01:00
nic7018_wdt.c watchdog: nic7018_wdt: Add NIC7018 watchdog driver 2017-02-24 14:00:23 -08:00
nuc900_wdt.c
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 watchdog: omap: don't disable the timer when it should be enabled early 2015-12-27 21:09:40 +01:00
omap_wdt.h watchdog: omap_wdt: implement get_timeleft 2015-06-22 15:54:35 +02:00
orion_wdt.c watchdog: orion: make license info match the file header 2017-06-05 20:39:12 +02:00
pc87413_wdt.c Annotate hardware config module parameters in drivers/watchdog/ 2017-04-20 12:02:32 +01:00
pcwd.c watchdog: pcwd: Utilize the module_isa_driver macro 2016-07-17 20:59:23 +02:00
pcwd_pci.c
pcwd_usb.c watchdog: pcwd_usb: constify usb_device_id 2017-09-09 20:37:36 +02: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 watchdog: pika_wdt: add __ro_after_init to ident 2017-02-24 14:00:23 -08:00
pnx833x_wdt.c
pnx4008_wdt.c watchdog: pnx4008: restart: support "cmd" from userspace 2016-03-16 21:09:42 +01:00
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
rc32434_wdt.c watchdog: rc32434_wdt: fix ioctl error handling 2016-03-01 15:29:42 +01:00
rdc321x_wdt.c
renesas_wdt.c watchdog: renesas_wdt: update copyright dates 2017-09-09 21:11:58 +02:00
retu_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
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
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
sbc7240_wdt.c
sbc8360.c
sbc_epx_c3.c
sbc_fitpc2_wdt.c
sbsa_gwdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
sc520_wdt.c
sc1200wdt.c watchdog: sc1200: constify pnp_device_id 2017-09-09 21:14:46 +02:00
sch311x_wdt.c
scx200_wdt.c
shwdt.c watchdog: shwdt: Use setup_timer() 2016-05-14 18:25:56 +02: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: properly check for new register layouts 2016-05-14 16:16:04 +02:00
sp5100_tco.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +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_iwdg: constify watchdog_ops structure 2017-09-09 20:06:31 +02:00
stmp3xxx_rtc_wdt.c watchdog: stmp3xxx: Remove unused variables 2016-01-11 21:51:28 +01:00
sun4v_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
sunxi_wdt.c watchdog: sunxi_wdt: Convert to use device managed functions and other improvements 2017-02-24 14:00:23 -08: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 watchdog: ts4800: add driver for TS-4800 watchdog 2015-12-28 22:29:35 +01:00
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 Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
via_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
w83627hf_wdt.c watchdog: w83627hf: make const array chip_name static 2017-09-09 20:08:03 +02:00
w83877f_wdt.c
w83977f_wdt.c watchdog: w83977f_wdt: underflow in wdt_set_timeout() 2015-11-23 08:59:30 +01:00
wafer5823wdt.c
watchdog_core.c watchdog: core: Fix devres_alloc() allocation size 2016-09-23 08:37:14 +02:00
watchdog_core.h watchdog: Create watchdog device in watchdog_dev.c 2015-12-29 20:36:01 +01:00
watchdog_dev.c watchdog: introduce watchdog_worker_should_ping helper 2017-07-03 13:59:05 +02: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: fix build error if define SOFTWARE_REBOOT 2017-05-18 18:51:44 +02:00
wm831x_wdt.c watchdog: wm831x_wdt: Convert to use device managed functions 2017-02-24 14:00:23 -08:00
wm8350_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
xen_wdt.c
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