linux-stable/drivers/watchdog
Ben Wolsieffer aa25e54f44 watchdog: stm32_iwdg: initialize default timeout
[ Upstream commit dbd7c0088b ]

The driver never sets a default timeout value, therefore it is
initialized to zero. When CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED is
enabled, the watchdog is started during probe. The kernel is supposed to
automatically ping the watchdog from this point until userspace takes
over, but this does not happen if the configured timeout is zero. A zero
timeout causes watchdog_need_worker() to return false, so the heartbeat
worker does not run and the system therefore resets soon after the
driver is probed.

This patch fixes this by setting an arbitrary non-zero default timeout.
The default could be read from the hardware instead, but I didn't see
any reason to add this complexity.

This has been tested on an STM32F746.

Fixes: 85fdc63fe2 ("drivers: watchdog: stm32_iwdg: set WDOG_HW_RUNNING at probe")
Signed-off-by: Ben Wolsieffer <ben.wolsieffer@hefring.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240228182723.12855-1-ben.wolsieffer@hefring.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-26 18:20:56 -04:00
..
Kconfig linux-watchdog 6.1-rc1 tag 2022-10-13 10:31:13 -07:00
Makefile watchdog: Exar/MaxLinear XR28V38x driver 2022-10-02 12:55:35 +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: Fix .set_timeout callback 2022-10-02 12:55:40 +02:00
asm9260_wdt.c
aspeed_wdt.c watchdog: aspeed_wdt: Reorder output signal register configuration 2022-10-02 12:55:33 +02:00
at91rm9200_wdt.c
at91sam9_wdt.c watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in error path 2023-03-11 13:55:23 +01:00
at91sam9_wdt.h
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: Fix WDIOC_SETTIMEOUT handling 2024-01-25 15:27:36 -08: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: booke_wdt: Replace PPC_FSL_BOOK3E by PPC_E500 2022-09-26 23:00:13 +10: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: fix __diag288() inline assembly 2023-02-09 11:28:16 +01:00
digicolor_wdt.c
dw_wdt.c watchdog: dw_wdt: Fix the error handling path of dw_wdt_drv_probe() 2023-05-17 11:53:34 +02:00
ebc-c384_wdt.c
ep93xx_wdt.c
eurotechwdt.c watchdog: eurotechwdt: Remove redundant word in comments 2022-10-02 12:55:38 +02:00
exar_wdt.c drivers: watchdog: exar_wdt.c fix use after free 2022-10-19 19:49:47 +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 watchdog: ftwdt010_wdt: fix test for platform_get_irq() failure 2022-10-02 12:55:36 +02:00
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: Only claim UNKNOWN NMI if from iLO 2024-01-25 15:27:36 -08:00
i6300esb.c
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: Set NO_REBOOT if the watchdog is not already running 2022-12-31 13:32:44 +01:00
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: imx93: add watchdog timer on imx93 2022-10-02 12:55:47 +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: add MODULE_ALIAS() to allow auto-load 2023-09-19 12:28:00 +02:00
it87_wdt.c watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786 2024-02-05 20:12:56 +00:00
it8712f_wdt.c watchdog: it8712f_wdt: remove definition of DEBUG 2021-02-07 14:41:18 +01:00
ixp4xx_wdt.c watchdog: ixp4xx: Make sure restart always works 2023-11-20 11:52:15 +01:00
jz4740_wdt.c watchdog: jz4740: Fix return value check in jz4740_wdt_probe() 2021-06-21 08:49:11 +02: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
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 watchdog: menz069_wdt: fix watchdog initialisation 2023-06-09 10:34:07 +02:00
meson_gxbb_wdt.c watchdog: meson: keep running if already active 2022-10-02 12:55:41 +02: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: Enable clock if provided 2022-10-02 12:55:41 +02:00
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: Fix attempting to access uninitialized memory 2023-03-11 13:55:23 +01: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
rt2880_wdt.c
rtd119x_wdt.c
rti_wdt.c watchdog: rti_wdt: Drop runtime pm reference count when watchdog is unused 2024-01-25 15:27:36 -08: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: Handle TYPE-B reset for RZ/V2M 2023-03-11 13:55:23 +01: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: support exynosautov9 watchdog 2022-10-02 12:55:42 +02:00
sa1100_wdt.c watchdog: sa1100: make variable sa1100dog_driver static 2022-10-02 12:55:39 +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 sbsa_gwdt: Calculate timeout with 64-bit math 2023-11-28 17:07:18 +00: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: fix spelling typo in comment 2022-10-19 19:49:46 +02:00
sp5100_tco.c watchdog: sp5100_tco: support Hygon FCH/SCH (Server Controller Hub) 2023-08-23 17:52:25 +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: initialize default timeout 2024-03-26 18:20:56 -04: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 watchdog: twl4030_wdt: add missing mod_devicetable.h include 2022-10-07 11:03:25 +02:00
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: add bootstatus support 2022-10-02 12:55:34 +02: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: w83977f_wdt: Fix comment typo 2022-10-02 12:55:39 +02:00
wafer5823wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
watchdog_core.c watchdog: Add tracing events for the most usual watchdog events 2022-10-12 09:47:02 +02:00
watchdog_core.h watchdog: Add hrtimer-based pretimeout feature 2021-06-21 08:49:13 +02:00
watchdog_dev.c watchdog: set cdev owner before adding 2024-01-25 15:27:36 -08: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 i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00