linux/drivers/watchdog
Ben Wolsieffer bcc3ec2bdb 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:22:24 -04:00
..
acquirewdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
advantechwdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
alim1535_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
alim7101_wdt.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
ar7_wdt.c watchdog: Mark expected switch fall-throughs 2019-08-12 13:05:37 +02:00
armada_37xx_wdt.c watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe() 2022-08-25 11:18:06 +02:00
asm9260_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4 2019-05-21 11:28:40 +02:00
aspeed_wdt.c watchdog: aspeed: fix hardware timeout calculation 2021-07-20 16:10:49 +02:00
at91rm9200_wdt.c *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
at91sam9_wdt.c watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in error path 2023-03-11 16:44:10 +01:00
at91sam9_wdt.h watchdog: add SPDX identifiers for watchdog subsystem 2018-03-24 10:19:40 +01:00
ath79_wdt.c watchdog: ath79_wdt: fix a typo in the name of a function 2019-07-24 20:21:39 +02:00
atlas7_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 191 2019-05-30 11:29:21 -07:00
bcm47xx_wdt.c watchdog: add SPDX identifiers for watchdog subsystem 2018-03-24 10:19:40 +01:00
bcm63xx_wdt.c *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
bcm2835_wdt.c watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling 2024-01-25 14:34:28 -08:00
bcm7038_wdt.c watchdog: bcm7038_wdt: drop warning after registering device 2019-07-08 15:13:02 +02:00
bcm_kona_wdt.c watchdog: bcm_kona_wdt: no need to check return value of debugfs_create functions 2019-07-08 20:35:10 +02:00
bd70528_wdt.c watchdog: bd70528: Add MODULE_ALIAS to allow module auto loading 2019-11-05 16:58:12 +01:00
booke_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cadence_wdt.c watchdog: cadence_wdt: drop warning after registering device 2019-07-08 15:13:04 +02:00
coh901327_wdt.c watchdog: coh901327: make it explicitly non-modular 2019-05-05 21:10:33 +02:00
cpu5wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
cpwd.c watchdog: cpwd: fix build regression 2019-11-05 16:58:11 +01:00
da9052_wdt.c watchdog: da9052_wdt: drop warning after registering device 2019-07-08 15:13:04 +02:00
da9055_wdt.c watchdog: da9055_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:16 +02:00
da9062_wdt.c watchdog: da9062: No need to ping manually before setting timeout 2020-06-24 17:50:32 +02:00
da9063_wdt.c watchdog: da9063_wdt: parse DT for timeout value, too 2019-05-05 21:04:57 +02:00
davinci_wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
diag288_wdt.c watchdog: diag288_wdt: fix __diag288() inline assembly 2023-02-22 12:50:27 +01:00
digicolor_wdt.c watchdog: digicolor_wdt: Remove unused variable in dc_wdt_probe 2019-07-15 08:49:11 +02:00
dw_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
ebc-c384_wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
ep93xx_wdt.c watchdog: ep93xx_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:19 +02:00
eurotechwdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
f71808e_wdt.c watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT 2021-11-17 09:48:46 +01:00
ftwdt010_wdt.c watchdog: ftwdt010_wdt: drop warning after registering device 2019-07-08 15:13:06 +02:00
gef_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
geodewdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
gpio_wdt.c watchdog: gpio: add support for nowayout option 2019-07-08 19:39:44 +02:00
hpwdt.c watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO 2024-01-25 14:34:28 -08:00
i6300esb.c watchdog: i6300esb: drop warning after registering device 2019-07-08 15:13:06 +02:00
ib700wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
ibmasr.c *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
ie6xx_wdt.c watchdog: ie6xx_wdt: Use spinlock_t instead of struct spinlock 2019-07-08 20:46:48 +02:00
imgpdc_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
imx2_wdt.c watchdog: imx2_wdt: fix min() calculation in imx2_wdt_set_timeout 2019-09-17 08:59:02 +02:00
imx7ulp_wdt.c watchdog: imx7ulp: Fix reboot hang 2020-01-04 19:18:13 +01:00
imx_sc_wdt.c watchdog: imx_sc_wdt: fix pretimeout 2021-07-20 16:10:47 +02:00
indydog.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
intel_scu_watchdog.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 278 2019-06-05 17:36:36 +02:00
intel_scu_watchdog.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 278 2019-06-05 17:36:36 +02:00
intel-mid_wdt.c watchdog: intel-mid_wdt: add MODULE_ALIAS() to allow auto-load 2023-09-23 10:59:58 +02:00
iop_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 320 2019-06-05 17:37:05 +02:00
it87_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
it8712f_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
iTCO_vendor_support.c watchdog: iTCO_wdt: Export vendorsupport 2020-04-08 09:08:46 +02:00
iTCO_vendor.h watchdog: iTCO_wdt: Export vendorsupport 2020-04-08 09:08:46 +02:00
iTCO_wdt.c watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running 2023-10-10 21:46:40 +02:00
ixp4xx_wdt.c ARM: SoC platform updates 2019-05-16 08:31:32 -07:00
jz4740_wdt.c watchdog: jz4740: Fix unused variable warning in jz4740_wdt_probe 2019-08-12 13:05:39 +02:00
Kconfig ar7: fix kernel builds for compiler test 2021-11-17 09:48:46 +01:00
kempld_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 294 2019-06-05 17:36:38 +02:00
lantiq_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
loongson1_wdt.c watchdog: loongson1_wdt: drop warning after registering device 2019-07-08 15:13:08 +02:00
lpc18xx_wdt.c watchdog: Fix possible use-after-free by calling del_timer_sync() 2021-07-20 16:10:47 +02:00
m54xx_wdt.c *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
machzwd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
Makefile watchdog: Add i.MX7ULP watchdog support 2019-09-17 08:59:12 +02:00
max63xx_wdt.c watchdog: max63xx_wdt: Convert to use device managed functions and other improvements 2019-05-05 21:02:22 +02:00
max77620_wdt.c watchdog: max77620_wdt: drop warning after registering device 2019-07-08 15:13:09 +02:00
mei_wdt.c watchdog: mei_wdt: request stop on unregister 2021-03-04 10:26:47 +01:00
mena21_wdt.c watchdog: mena21_wdt: drop warning after registering device 2019-07-08 15:13:09 +02:00
menf21bmc_wdt.c watchdog: menf21bmc_wdt: drop warning after registering device 2019-07-08 15:13:10 +02:00
menz69_wdt.c watchdog: menz069_wdt: fix watchdog initialisation 2023-06-09 10:28:55 +02:00
meson_gxbb_wdt.c watchdog: meson: Fix the wrong value of left time 2019-11-05 16:58:12 +01:00
meson_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mixcomwd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mlx_wdt.c watchdog: mlx_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:24 +02:00
moxart_wdt.c watchdog: moxart_wdt: Convert to use device managed functions and other improvements 2019-05-05 21:02:24 +02:00
mpc8xxx_wdt.c watchdog: mpc8xxx_wdt: drop warning after registering device 2019-07-08 15:13:10 +02:00
mt7621_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mtk_wdt.c watchdog: mtk_wdt: Convert to use device managed functions and other improvements 2019-05-05 21:02:25 +02:00
mtx-1_wdt.c *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
mv64x60_wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
ni903x_wdt.c watchdog: ni903x_wdt: drop warning after registering device 2019-07-08 15:13:10 +02:00
nic7018_wdt.c watchdog: nic7018_wdt: drop warning after registering device 2019-07-08 15:13:11 +02:00
npcm_wdt.c watchdog: npcm_wdt: drop warning after registering device 2019-07-08 15:13:11 +02:00
nv_tco.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
nv_tco.h watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
octeon-wdt-main.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
octeon-wdt-nmi.S
of_xilinx_wdt.c watchdog: of_xilinx_wdt: drop warning after registering device 2019-07-08 15:13:12 +02:00
omap_wdt.c watchdog: Fix OMAP watchdog early handling 2021-11-17 09:48:21 +01:00
omap_wdt.h watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
orion_wdt.c watchdog: orion: use 0 for unset heartbeat 2021-10-20 11:40:13 +02:00
pc87413_wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
pcwd_pci.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
pcwd_usb.c watchdog: pcwd_usb: Fix attempting to access uninitialized memory 2023-03-11 16:44:11 +01:00
pcwd.c watchdog: Mark expected switch fall-throughs 2019-08-12 13:05:37 +02:00
pic32-dmt.c watchdog: pic32-dmt: drop warning after registering device 2019-07-08 15:13:12 +02:00
pic32-wdt.c watchdog: pic32-wdt: drop warning after registering device 2019-07-08 15:13:12 +02:00
pika_wdt.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pm8916_wdt.c watchdog: pm8916_wdt: fix pretimeout registration flow 2019-11-05 16:58:11 +01:00
pnx833x_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pnx4008_wdt.c watchdog: pnx4008_wdt: allow compile-testing 2019-09-16 22:10:05 +02:00
pretimeout_noop.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pretimeout_panic.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
qcom-wdt.c watchdog: qcom: Remove incorrect usage of QCOM_WDT_ENABLE_IRQ 2021-03-04 10:26:47 +01:00
rave-sp-wdt.c watchdog: rave-sp-wdt: drop warning after registering device 2019-07-08 15:13:14 +02:00
rc32434_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rdc321x_wdt.c drivers: watchdog: rdc321x_wdt: Fix race condition bugs 2020-11-05 11:43:20 +01:00
renesas_wdt.c watchdog: renesas_wdt: Add a few cycles delay 2019-07-08 19:39:44 +02:00
retu_wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
riowd.c watchdog: riowd: Mark expected switch fall-through 2019-08-12 13:05:38 +02:00
rn5t618_wdt.c watchdog: rn5t618_wdt: fix module aliases 2020-02-01 09:34:43 +00:00
rt2880_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtd119x_wdt.c watchdog: rtd119x: drop unused module.h include 2019-05-05 21:10:34 +02:00
rza_wdt.c watchdog: rza_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:27 +02:00
s3c2410_wdt.c watchdog: s3c2410_wdt: drop warning after registering device 2019-07-08 15:13:14 +02:00
sa1100_wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
sama5d4_wdt.c watchdog: atmel: atmel-sama5d4-wdt: Disable watchdog on system suspend 2019-07-08 20:35:12 +02:00
sb_wdog.c watchdog: Mark expected switch fall-throughs 2019-08-12 13:05:37 +02:00
sbc60xxwdt.c watchdog: Fix possible use-after-free in wdt_startup() 2021-07-20 16:10:47 +02:00
sbc7240_wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
sbc8360.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
sbc_epx_c3.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sbc_fitpc2_wdt.c *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
sbsa_gwdt.c watchdog: sbsa_wdog: Make sure the timeout programming is within the limits 2023-04-20 12:07:37 +02:00
sc520_wdt.c watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff() 2021-07-20 16:10:47 +02:00
sc1200wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sch311x_wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
scx200_wdt.c watchdog: scx200_wdt: Mark expected switch fall-through 2019-08-12 13:05:37 +02:00
shwdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sirfsoc_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4 2019-05-21 11:28:40 +02:00
smsc37b787_wdt.c docs: watchdog: convert docs to ReST and rename to *.rst 2019-07-08 20:35:09 +02:00
softdog.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
sp805_wdt.c watchdog: sp805: fix restart handler 2020-04-23 10:36:15 +02:00
sp5100_tco.c watchdog: sp5100_tco: Immediately trigger upon starting. 2023-05-30 12:44:08 +01:00
sp5100_tco.h watchdog: sp5100: Fix definition of EFCH_PM_DECODEEN3 2020-10-29 09:57:55 +01:00
sprd_wdt.c watchdog: sprd: check busy bit before new loading rather than after that 2020-12-30 11:51:25 +01:00
st_lpc_wdt.c watchdog: st_lpc_wdt: drop warning after registering device 2019-07-08 15:13:16 +02:00
stm32_iwdg.c watchdog: stm32_iwdg: initialize default timeout 2024-03-26 18:22:24 -04:00
stmp3xxx_rtc_wdt.c watchdog: stmp3xxx_rtc_wdt: drop warning after registering device 2019-07-08 15:13:17 +02:00
stpmic1_wdt.c watchdog: stpmic1_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:29 +02:00
sun4v_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sunxi_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
tangox_wdt.c watchdog: tangox_wdt: Convert to use device managed functions and other improvements 2019-05-05 21:02:30 +02:00
tegra_wdt.c watchdog: tegra_wdt: drop warning after registering device 2019-07-08 15:13:17 +02:00
tqmx86_wdt.c watchdog: tqmx86_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:31 +02:00
ts72xx_wdt.c watchdog: ts72xx_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:32 +02:00
ts4800_wdt.c watchdog: ts4800_wdt: Fix refcount leak in ts4800_wdt_probe 2022-06-14 18:11:54 +02:00
twl4030_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
txx9wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
uniphier_wdt.c watchdog: uniphier_wdt: drop platform_set_drvdata 2019-05-05 21:02:32 +02:00
ux500_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
via_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
w83627hf_wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
w83877f_wdt.c watchdog: Fix possible use-after-free by calling del_timer_sync() 2021-07-20 16:10:47 +02:00
w83977f_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wafer5823wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
watchdog_core.c watchdog: Fix potential dereferencing of null pointer 2020-12-30 11:51:25 +01:00
watchdog_core.h watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
watchdog_dev.c watchdog: set cdev owner before adding 2024-01-25 14:34:28 -08:00
watchdog_pretimeout.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
watchdog_pretimeout.h
wd501p.h watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
wdat_wdt.c watchdog: wdat_wdt: Stop watchdog when rebooting the system 2022-06-14 18:12:00 +02:00
wdrtas.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 153 2019-05-30 11:26:32 -07:00
wdt285.c watchdog: wdt285: Mark expected switch fall-through 2019-08-20 19:43:23 -05:00
wdt977.c watchdog: wdt977: Mark expected switch fall-through 2019-08-12 13:05:38 +02:00
wdt_pci.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
wdt.c watchdog: Mark expected switch fall-throughs 2019-08-12 13:05:37 +02:00
wm831x_wdt.c watchdog: wm831x_wdt: drop warning after registering device 2019-07-08 15:13:18 +02:00
wm8350_wdt.c watchdog: add SPDX identifiers for watchdog subsystem 2018-03-24 10:19:40 +01:00
xen_wdt.c watchdog: xen_wdt: drop warning after registering device 2019-07-08 15:13:18 +02:00
ziirave_wdt.c watchdog: ziirave_wdt: Update checked I2C functionality mask 2019-09-17 08:59:09 +02:00
zx2967_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00