linux-stable/drivers/watchdog
Jean Delvare 926e099267 watchdog: wdat_wdt: Set the min and max timeout values properly
The wdat_wdt driver is misusing the min_hw_heartbeat_ms field. This
field should only be used when the hardware watchdog device should not
be pinged more frequently than a specific period. The ACPI WDAT
"Minimum Count" field, on the other hand, specifies the minimum
timeout value that can be set. This corresponds to the min_timeout
field in Linux's watchdog infrastructure.

Setting min_hw_heartbeat_ms instead can cause pings to the hardware
to be delayed when there is no reason for that, eventually leading to
unexpected firing of the watchdog timer (and thus unexpected reboot).

Since commit 6d72c7ac9f ("watchdog: wdat_wdt: Using the existing
function to check parameter timeout"), min_timeout is being set too,
but to the arbitrary value of 1 second, which doesn't make sense and
allows setting timeout values lower that the ACPI WDAT "Minimum
Count" field.

I'm also changing max_hw_heartbeat_ms to max_timeout for symmetry,
although the use of this one isn't fundamentally wrong, but there is
also no reason to enable the software-driven ping mechanism for the
wdat_wdt driver.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Fixes: 058dfc7670 ("ACPI / watchdog: Add support for WDAT hardware watchdog")
Fixes: 6d72c7ac9f ("watchdog: wdat_wdt: Using the existing function to check parameter timeout")
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Cc: Wim Van Sebroeck <wim@linux-watchdog.org>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Liu Xinpeng <liuxp11@chinatelecom.cn>
Link: https://lore.kernel.org/r/20220823154713.023ee771@endymion.delvare
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
2022-10-02 12:55:31 +02:00
..
acquirewdt.c
advantechwdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
alim1535_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
alim7101_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
apple_wdt.c watchdog: Add Apple SoC watchdog driver 2022-01-05 10:38:37 +01:00
ar7_wdt.c watchdog: ar7_wdt: Make use of the helper function devm_platform_ioremap_resource_byname() 2021-10-26 21:31:08 +02:00
arm_smc_wdt.c watchdog: Add new arm_smc_wdt watchdog driver 2020-05-25 08:55:46 +02:00
armada_37xx_wdt.c watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe() 2022-07-23 14:26:42 +02:00
asm9260_wdt.c
aspeed_wdt.c watchdog: aspeed: add nowayout support 2022-03-27 17:04:08 +02:00
at91rm9200_wdt.c
at91sam9_wdt.c
at91sam9_wdt.h watchdog: sama5d4_wdt: addition of sam9x60 compatible watchdog 2020-01-27 15:55:44 +01:00
ath79_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
bcm47xx_wdt.c
bcm2835_wdt.c watchdog: bcm2835_wdt: consider system-power-controller property 2021-08-22 10:28:08 +02:00
bcm7038_wdt.c watchdog: bcm7038_wdt: Remove #ifdef guards for PM related functions 2022-07-23 14:21:25 +02:00
bcm_kona_wdt.c watchdog: bcm_kona_wdt: Use correct return value for bcm_kona_wdt_probe() 2020-08-05 18:42:46 +02:00
bd9576_wdt.c watchdog: bd9576_wdt: switch to using devm_fwnode_gpiod_get() 2022-10-02 12:55:30 +02:00
booke_wdt.c watchdog: Fix comment typo 2022-07-23 14:26:41 +02:00
cadence_wdt.c watchdog: cadence: Simplify with dev_err_probe() 2020-10-14 15:02:24 +02:00
cpu5wdt.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
cpwd.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
da9052_wdt.c
da9055_wdt.c
da9062_wdt.c watchdog: da9062: da9063: prevent pings ahead of machine reset 2021-10-26 21:31:05 +02:00
da9063_wdt.c watchdog: da9063: optionally disable watchdog during suspend 2022-05-21 10:07:31 +02:00
davinci_wdt.c watchdog: davinci: Use div64_ul instead of do_div 2021-12-28 14:03:03 +01:00
db8500_wdt.c watchdog: db8500_wdt: Rename symbols 2021-11-01 20:18:09 +01:00
diag288_wdt.c watchdog: diag288_wdt: Remove redundant assignment 2021-06-21 08:49:14 +02:00
digicolor_wdt.c
dw_wdt.c watchdog: dw_wdt: Fix comment typo 2022-07-23 14:26:41 +02:00
ebc-c384_wdt.c
ep93xx_wdt.c
eurotechwdt.c watchdog: fix syntactic kernel-doc issues 2021-06-21 08:49:09 +02:00
f71808e_wdt.c watchdog: f71808e_wdt: Add check for platform_driver_register 2022-07-23 14:18:46 +02:00
ftwdt010_wdt.c
gef_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
geodewdt.c watchdog: geodewdt: remove unneeded break 2020-12-13 16:17:41 +01:00
gpio_wdt.c
gxp-wdt.c watchdog: gxp: Add missing MODULE_LICENSE 2022-06-09 12:20:34 +02:00
hpwdt.c watchdog/hpwdt: New PCI IDs 2021-06-21 08:49:00 +02:00
i6300esb.c
ib700wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
ibmasr.c
ie6xx_wdt.c
imgpdc_wdt.c
imx2_wdt.c watchdog: imx2_wdg: Alow ping on suspend 2022-03-27 17:04:07 +02:00
imx7ulp_wdt.c watchdog: imx7ulp: Watchdog should continue running for wait/stop mode 2020-10-14 15:02:26 +02:00
imx_sc_wdt.c watchdog: imx_sc_wdt: fix pretimeout 2021-06-21 08:49:14 +02:00
indydog.c
intel-mid_wdt.c watchdog: intel-mid_wdt: Postpone IRQ handler registration till SCU is ready 2021-01-25 20:05:32 +02:00
it87_wdt.c watchdog: it87_wdt: remove useless function 2021-06-21 08:49:04 +02:00
it8712f_wdt.c watchdog: it8712f_wdt: remove definition of DEBUG 2021-02-07 14:41:18 +01:00
iTCO_vendor.h watchdog: iTCO_wdt: Export vendorsupport 2020-03-10 10:20:27 +01:00
iTCO_vendor_support.c watchdog: iTCO_wdt: Export vendorsupport 2020-03-10 10:20:27 +01:00
iTCO_wdt.c watchdog: iTCO_wdt: Using existing macro define covers more scenarios 2022-05-21 10:09:28 +02:00
ixp4xx_wdt.c watchdog: ixp4xx: Implement restart 2022-03-27 17:04:28 +02:00
jz4740_wdt.c watchdog: jz4740: Fix return value check in jz4740_wdt_probe() 2021-06-21 08:49:11 +02:00
Kconfig powerpc updates for 6.0 2022-08-06 16:38:17 -07:00
keembay_wdt.c watchdog: keembay: Typo corrections and other blank operations 2021-06-21 08:48:57 +02:00
kempld_wdt.c
lantiq_wdt.c
loongson1_wdt.c
lpc18xx_wdt.c watchdog: Fix possible use-after-free by calling del_timer_sync() 2021-06-21 08:49:03 +02:00
m54xx_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
machzwd.c watchdog: Fix fall-through warnings for Clang 2021-05-17 18:56:23 -05:00
Makefile watchdog/pseries-wdt: initial support for H_WATCHDOG-based watchdog timers 2022-07-20 21:57:39 +10:00
max63xx_wdt.c watchdog: max63xx_wdt: Add device tree probing 2021-08-22 10:28:11 +02:00
max77620_wdt.c watchdog: max77620: update Luca Ceresoli's e-mail address 2022-07-23 14:21:23 +02:00
mei_wdt.c mei: fix kdoc in the driver 2021-06-22 12:40:31 +02:00
mena21_wdt.c
menf21bmc_wdt.c
menz69_wdt.c drivers: mcb: use symbol namespaces 2019-11-03 19:54:53 +01:00
meson_gxbb_wdt.c watchdog: meson_gxbb_wdt: remove stop_on_reboot 2021-12-28 13:59:06 +01:00
meson_wdt.c watchdog: meson_wdt: Use device_get_match_data() helper 2021-06-21 08:49:05 +02:00
mixcomwd.c
mlx_wdt.c watchdog: mlx-wdt: Use regmap_write_bits() 2021-10-26 21:31:10 +02:00
moxart_wdt.c
mpc8xxx_wdt.c watchdog: mpc8xxx_wdt: Constify static struct watchdog_ops 2021-08-22 10:28:10 +02:00
msc313e_wdt.c watchdog: msc313e: Check if the WDT was running at boot 2022-01-05 10:38:51 +01:00
mt7621_wdt.c
mtk_wdt.c watchdog: mtk_wdt: Remove #ifdef guards for PM related functions 2022-07-23 14:21:25 +02:00
mtx-1_wdt.c watchdog: mtx-1: drop au1000.h header file 2021-06-21 08:48:58 +02:00
ni903x_wdt.c
nic7018_wdt.c
npcm_wdt.c watchdog: npcm: Add support for WPCM450 2021-04-09 14:11:24 +09:30
nv_tco.c watchdog: Replace HTTP links with HTTPS ones 2020-08-05 18:43:01 +02:00
nv_tco.h watchdog: Replace HTTP links with HTTPS ones 2020-08-05 18:43:01 +02:00
octeon-wdt-main.c linux-watchdog 5.14-rc1 tag 2021-07-07 12:57:46 -07:00
octeon-wdt-nmi.S
of_xilinx_wdt.c watchdog: of_xilinx_wdt: Skip printing pointer value 2021-06-21 08:49:08 +02:00
omap_wdt.c watchdog: Fix OMAP watchdog early handling 2021-10-26 20:22:51 +02:00
omap_wdt.h
orion_wdt.c watchdog: orion_wdt: support pretimeout on Armada-XP 2022-03-27 17:04:28 +02:00
pc87413_wdt.c watchdog:Fix typo in comment 2022-07-23 14:21:28 +02:00
pcwd.c isa: Make the remove callback for isa drivers return void 2021-01-26 07:42:27 +01:00
pcwd_pci.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
pcwd_usb.c watchdog: pcwd_usb: Avoid GFP_ATOMIC where it is not needed 2020-10-14 15:02:22 +02:00
pic32-dmt.c
pic32-wdt.c
pika_wdt.c
pm8916_wdt.c watchdog: pm8916_wdt: Handle watchdog enabled by bootloader 2022-07-23 14:21:28 +02:00
pnx4008_wdt.c
pretimeout_noop.c
pretimeout_panic.c
pseries-wdt.c watchdog/pseries-wdt: initial support for H_WATCHDOG-based watchdog timers 2022-07-20 21:57:39 +10:00
qcom-wdt.c watchdog: qcom: Move suspend/resume to suspend_late/resume_early 2021-06-21 08:49:12 +02:00
rave-sp-wdt.c
rc32434_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
rdc321x_wdt.c drivers: watchdog: rdc321x_wdt: Fix race condition bugs 2020-10-14 15:02:21 +02:00
realtek_otto_wdt.c watchdog: realtek-otto: add RTL9310 support 2022-07-23 14:21:24 +02:00
renesas_wdt.c watchdog: renesas_wdt: Add R-Car Gen4 support 2022-03-27 17:04:09 +02:00
retu_wdt.c watchdog: retu_wdt: Clean-up by using managed work init 2021-03-23 15:22:40 +01:00
riowd.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
rn5t618_wdt.c watchdog: rn5t618_wdt: fix module aliases 2019-12-30 15:58:29 +01:00
rt2880_wdt.c
rtd119x_wdt.c
rti_wdt.c watchdog: rti-wdt: Fix pm_runtime_get_sync() error checking 2022-05-21 10:09:28 +02:00
rza_wdt.c watchdog: rza_wdt: Use semicolons instead of commas 2021-10-26 21:31:10 +02:00
rzg2l_wdt.c watchdog: rzg2l_wdt: Add set_timeout callback 2022-05-08 10:34:04 +02:00
rzn1_wdt.c watchdog: Add Renesas RZ/N1 Watchdog driver 2022-05-21 10:09:31 +02:00
s3c2410_wdt.c watchdog: s3c2410_wdt: Remove #ifdef guards for PM related functions 2022-07-23 14:21:26 +02:00
sa1100_wdt.c watchdog: sa1100: use platform device registration 2022-04-19 21:33:57 +02:00
sama5d4_wdt.c watchdog: sama5d4_wdt: Remove #ifdef guards for PM related functions 2022-07-23 14:21:26 +02:00
sb_wdog.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
sbc60xxwdt.c watchdog: Fix possible use-after-free in wdt_startup() 2021-06-21 08:48:59 +02:00
sbc7240_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
sbc8360.c
sbc_epx_c3.c
sbc_fitpc2_wdt.c watchdog: sbc_fitpc2_wdt: add __user annotations 2020-12-13 16:17:41 +01:00
sbsa_gwdt.c watchdog: sbsa: drop unneeded MODULE_ALIAS 2021-10-26 20:22:51 +02:00
sc520_wdt.c watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff() 2021-06-21 08:49:02 +02:00
sc1200wdt.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sch311x_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
scx200_wdt.c watchdog: scx200_wdt: Use fallthrough pseudo-keyword 2020-08-05 18:42:54 +02:00
shwdt.c
simatic-ipc-wdt.c watchdog: simatic-ipc-wdt: convert to use P2SB accessor 2022-07-14 10:50:36 +01:00
sl28cpld_wdt.c watchdog: sl28cpld_wdt: Constify static struct watchdog_ops 2021-08-22 10:28:09 +02:00
smsc37b787_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
softdog.c watchdog: softdog: Add options 'soft_reboot_cmd' and 'soft_active_on_boot' 2020-08-05 18:43:02 +02:00
sp805_wdt.c watchdog: sp805_wdt: add arm cmsdk apb wdt support 2022-07-23 14:21:24 +02:00
sp5100_tco.c watchdog: sp5100_tco: Fix a memory leak of EFCH MMIO resource 2022-07-23 14:21:23 +02:00
sp5100_tco.h Watchdog: sp5100_tco: Enable Family 17h+ CPUs 2022-03-27 17:04:33 +02:00
sprd_wdt.c watchdog: sprd: change to use usleep_range() instead of busy loop 2020-12-13 16:17:39 +01:00
st_lpc_wdt.c watchdog: st_lpc_wdt: Remove #ifdef guards for PM related functions 2022-07-23 14:21:26 +02:00
stm32_iwdg.c watchdog: stm32_iwdg: drop superfluous error message 2021-10-26 21:31:02 +02:00
stmp3xxx_rtc_wdt.c
stpmic1_wdt.c
sun4v_wdt.c
sunplus_wdt.c watchdog: Add watchdog driver for Sunplus SP7021 2022-05-08 10:34:05 +02:00
sunxi_wdt.c watchdog: sunxi_wdt: Add support for D1 2021-10-26 21:31:08 +02:00
tegra_wdt.c watchdog: tegra_wdt: Remove #ifdef guards for PM related functions 2022-07-23 14:21:27 +02:00
tqmx86_wdt.c watchdog: tqmx86: Constify static struct watchdog_ops 2021-08-22 10:28:10 +02:00
ts72xx_wdt.c
ts4800_wdt.c watchdog: ts4800_wdt: Fix refcount leak in ts4800_wdt_probe 2022-05-21 10:09:31 +02:00
twl4030_wdt.c
txx9wdt.c
uniphier_wdt.c
via_wdt.c
visconti_wdt.c watchdog: Add Toshiba Visconti watchdog driver 2020-10-14 15:22:58 +02:00
w83627hf_wdt.c watchdog: w83627hf_wdt: Fix support NCT6116D 2019-12-30 15:58:23 +01:00
w83877f_wdt.c watchdog: Fix possible use-after-free by calling del_timer_sync() 2021-06-21 08:49:03 +02:00
w83977f_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
wafer5823wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
watchdog_core.c watchdog: introduce watchdog_dev_suspend/resume 2021-08-22 10:28:08 +02:00
watchdog_core.h watchdog: Add hrtimer-based pretimeout feature 2021-06-21 08:49:13 +02:00
watchdog_dev.c watchdog: Improve watchdog_dev function documentation 2022-03-27 17:04:08 +02:00
watchdog_hrtimer_pretimeout.c watchdog: Add hrtimer-based pretimeout feature 2021-06-21 08:49:13 +02:00
watchdog_pretimeout.c watchdog: Add hrtimer-based pretimeout feature 2021-06-21 08:49:13 +02:00
watchdog_pretimeout.h
wd501p.h
wdat_wdt.c watchdog: wdat_wdt: Set the min and max timeout values properly 2022-10-02 12:55:31 +02:00
wdrtas.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
wdt.c watchdog: fix syntactic kernel-doc issues 2021-06-21 08:49:09 +02:00
wdt285.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
wdt977.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
wdt_pci.c watchdog: fix syntactic kernel-doc issues 2021-06-21 08:49:09 +02:00
wm831x_wdt.c watchdog: wm831x_wdt: Remove GPIO handling 2020-03-18 11:15:24 +01:00
wm8350_wdt.c
xen_wdt.c
ziirave_wdt.c watchdog: ziirave_wdt: Remove VERSION_FMT defines and add sysfs newlines 2021-06-21 08:49:15 +02:00