linux-stable/drivers/watchdog
Ben Wolsieffer 32903ecf21 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:01 -04:00
..
Kconfig ar7: fix kernel builds for compiler test 2021-11-18 14:04:24 +01:00
Makefile linux-watchdog 5.10-rc1 tag 2020-10-21 11:28:43 -07: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
ar7_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +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-08-21 15:16:10 +02:00
asm9260_wdt.c
aspeed_wdt.c watchdog: aspeed: fix hardware timeout calculation 2021-07-20 16:05:51 +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 16:40:11 +01:00
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
atlas7_wdt.c
bcm47xx_wdt.c
bcm63xx_wdt.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
bcm2835_wdt.c watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling 2024-01-25 14:37:49 -08:00
bcm7038_wdt.c
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
bd70528_wdt.c watchdog: bd70528: Trivial function documentation fix 2019-11-18 19:53:41 +01:00
booke_wdt.c watchdog: booke_wdt: Add common nowayout parameter driver 2020-08-05 18:42:54 +02:00
cadence_wdt.c watchdog: cadence: Simplify with dev_err_probe() 2020-10-14 15:02:24 +02:00
coh901327_wdt.c
cpu5wdt.c
cpwd.c
da9052_wdt.c
da9055_wdt.c
da9062_wdt.c watchdog: da9062: No need to ping manually before setting timeout 2020-05-25 08:55:44 +02:00
da9063_wdt.c watchdog: da9063: Make use of pre-configured timeout during probe 2020-05-25 08:55:43 +02:00
davinci_wdt.c watchdog: davinci: Simplify with dev_err_probe() 2020-10-14 15:02:25 +02:00
diag288_wdt.c watchdog: diag288_wdt: fix __diag288() inline assembly 2023-02-15 17:22:17 +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:48:10 +02:00
ebc-c384_wdt.c
ep93xx_wdt.c
eurotechwdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
f71808e_wdt.c watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT 2021-11-18 14:04:24 +01:00
ftwdt010_wdt.c
gef_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
geodewdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
gpio_wdt.c
hpwdt.c watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO 2024-01-25 14:37:49 -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 2023-10-10 21:53:34 +02: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_wdt: update contact email 2020-05-25 08:55:45 +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-07-20 16:05:47 +02:00
indydog.c
intel-mid_wdt.c watchdog: intel-mid_wdt: add MODULE_ALIAS() to allow auto-load 2023-09-19 12:20:25 +02:00
intel_scu_watchdog.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
intel_scu_watchdog.h
iop_wdt.c
it87_wdt.c watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786 2024-02-23 08:42:12 +01:00
it8712f_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
ixp4xx_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
jz4740_wdt.c watchdog: jz4740: Fix return value check in jz4740_wdt_probe() 2021-07-20 16:05:51 +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-07-20 16:05:47 +02:00
m54xx_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
machzwd.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
max63xx_wdt.c
max77620_wdt.c
mei_wdt.c watchdog: mei_wdt: request stop on unregister 2021-03-04 11:38:36 +01:00
mena21_wdt.c
menf21bmc_wdt.c
menz69_wdt.c watchdog: menz069_wdt: fix watchdog initialisation 2023-06-09 10:30:07 +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
mixcomwd.c
mlx_wdt.c watchdog: mlx-wdt: support new watchdog type with longer timeout period 2020-08-05 18:42:45 +02:00
moxart_wdt.c
mpc8xxx_wdt.c
mt7621_wdt.c
mtk_wdt.c watchdog: mtk_wdt: mt2712: Add reset controller 2020-01-27 15:55:49 +01:00
mtx-1_wdt.c
mv64x60_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
ni903x_wdt.c
nic7018_wdt.c
npcm_wdt.c watchdog: npcm: remove whitespaces 2020-03-18 11:15:25 +01: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
octeon-wdt-nmi.S
of_xilinx_wdt.c
omap_wdt.c watchdog: Fix OMAP watchdog early handling 2021-11-18 14:03:43 +01:00
omap_wdt.h
orion_wdt.c watchdog: orion: use 0 for unset heartbeat 2020-04-01 11:35:22 +02:00
pc87413_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
pcwd.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02: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 16:40:12 +01:00
pic32-dmt.c
pic32-wdt.c
pika_wdt.c
pm8916_wdt.c watchdog: pm8916_wdt: Add system sleep callbacks 2020-03-18 11:10:09 +01:00
pnx833x_wdt.c
pnx4008_wdt.c
pretimeout_noop.c
pretimeout_panic.c
qcom-wdt.c watchdog: qcom: Remove incorrect usage of QCOM_WDT_ENABLE_IRQ 2021-03-04 11:38:36 +01: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
renesas_wdt.c watchdog: renesas_wdt: support handover from bootloader 2020-10-14 15:22:56 +02:00
retu_wdt.c
riowd.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02: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: Drop runtime pm reference count when watchdog is unused 2024-01-25 14:37:49 -08:00
rza_wdt.c
s3c2410_wdt.c
sa1100_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
sama5d4_wdt.c watchdog: sama5d4_wdt: addition of sam9x60 compatible watchdog 2020-01-27 15:55:44 +01: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-07-20 16:05:47 +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: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
sbsa_gwdt.c watchdog: sbsa_wdog: Make sure the timeout programming is within the limits 2023-04-20 12:10:28 +02:00
sc520_wdt.c watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff() 2021-07-20 16:05:47 +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
sirfsoc_wdt.c
sl28cpld_wdt.c watchdog: add support for sl28cpld watchdog 2020-09-17 15:59:00 +01: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 amba: Make the remove callback return void 2022-04-08 14:40:02 +02:00
sp5100_tco.c watchdog: sp5100_tco: Immediately trigger upon starting. 2023-05-30 12:57:56 +01:00
sp5100_tco.h watchdog: sp5100: Fix definition of EFCH_PM_DECODEEN3 2020-10-14 15:22:57 +02:00
sprd_wdt.c watchdog: sprd: check busy bit before new loading rather than after that 2020-12-30 11:53:52 +01:00
st_lpc_wdt.c
stm32_iwdg.c watchdog: stm32_iwdg: initialize default timeout 2024-03-26 18:22:01 -04:00
stmp3xxx_rtc_wdt.c
stpmic1_wdt.c
sun4v_wdt.c
sunxi_wdt.c watchdog: sunxi_wdt: fix improper error exit code 2020-08-05 18:42:46 +02:00
tangox_wdt.c
tegra_wdt.c
tqmx86_wdt.c
ts72xx_wdt.c
ts4800_wdt.c watchdog: ts4800_wdt: Fix refcount leak in ts4800_wdt_probe 2022-06-14 18:32:34 +02:00
twl4030_wdt.c
txx9wdt.c
uniphier_wdt.c
ux500_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-07-20 16:05:47 +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: Fix potential dereferencing of null pointer 2020-12-30 11:53:52 +01:00
watchdog_core.h
watchdog_dev.c watchdog: set cdev owner before adding 2024-01-25 14:37:49 -08:00
watchdog_pretimeout.c
watchdog_pretimeout.h
wd501p.h
wdat_wdt.c watchdog: wdat_wdt: Stop watchdog when rebooting the system 2022-06-14 18:32:43 +02:00
wdrtas.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +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: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +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: change name to be more specific 2020-04-01 11:35:22 +02:00
zx2967_wdt.c