]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
watchdog: at91sam9_wdt: prevent timer rearm during teardown
authorHongyan Xu <getshell@seu.edu.cn>
Thu, 6 Aug 2026 06:06:13 +0000 (14:06 +0800)
committerGuenter Roeck <linux@roeck-us.net>
Thu, 6 Aug 2026 21:23:55 +0000 (14:23 -0700)
commit8444d66aa6b6e7fe0a26fa1a00a11cb4d0523783
tree5f004dd80da569313944ed03f29a52b62355a768
parent1246aa2b6ccc8944676bd24ff3e37cc56b93b51b
watchdog: at91sam9_wdt: prevent timer rearm during teardown

at91_ping() rearms the watchdog timer from its callback. timer_delete()
neither waits for a running callback nor prevents it from rearming the
timer, so probe failure or driver removal can leave the timer accessing the
devm-allocated at91wdt after it has been freed.

Use timer_shutdown_sync() on both teardown paths. It waits for a running
callback and rejects any attempt by the callback to rearm the timer.

Fixes: 5161b31dc39a ("watchdog: at91sam9_wdt: better watchdog support")
Signed-off-by: Hongyan Xu <getshell@seu.edu.cn>
Link: https://lore.kernel.org/r/20260806060613.1830-1-getshell@seu.edu.cn
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/watchdog/at91sam9_wdt.c