From 84ebcc17f281ed6ce1e6a7b4b0d9f15da727edd5 Mon Sep 17 00:00:00 2001 From: Damien Riegel Date: Fri, 20 Nov 2015 16:54:55 -0500 Subject: watchdog: softdog: use core reboot notifier Get rid of the custom reboot notifier block registration and use the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck --- drivers/watchdog/softdog.c | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) (limited to 'drivers/watchdog/softdog.c') diff --git a/drivers/watchdog/softdog.c b/drivers/watchdog/softdog.c index 0dc5e323d59d..fe1e15137bf6 100644 --- a/drivers/watchdog/softdog.c +++ b/drivers/watchdog/softdog.c @@ -43,7 +43,6 @@ #include #include #include -#include #include #include #include @@ -121,27 +120,10 @@ static int softdog_set_timeout(struct watchdog_device *w, unsigned int t) return 0; } -/* - * Notifier for system down - */ - -static int softdog_notify_sys(struct notifier_block *this, unsigned long code, - void *unused) -{ - if (code == SYS_DOWN || code == SYS_HALT) - /* Turn the WDT off */ - softdog_stop(NULL); - return NOTIFY_DONE; -} - /* * Kernel Interfaces */ -static struct notifier_block softdog_notifier = { - .notifier_call = softdog_notify_sys, -}; - static struct watchdog_info softdog_info = { .identity = "Software Watchdog", .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE, @@ -175,18 +157,11 @@ static int __init watchdog_init(void) softdog_dev.timeout = soft_margin; watchdog_set_nowayout(&softdog_dev, nowayout); - - ret = register_reboot_notifier(&softdog_notifier); - if (ret) { - pr_err("cannot register reboot notifier (err=%d)\n", ret); - return ret; - } + watchdog_stop_on_reboot(&softdog_dev); ret = watchdog_register_device(&softdog_dev); - if (ret) { - unregister_reboot_notifier(&softdog_notifier); + if (ret) return ret; - } pr_info("Software Watchdog Timer: 0.08 initialized. soft_noboot=%d soft_margin=%d sec soft_panic=%d (nowayout=%d)\n", soft_noboot, soft_margin, soft_panic, nowayout); @@ -197,7 +172,6 @@ static int __init watchdog_init(void) static void __exit watchdog_exit(void) { watchdog_unregister_device(&softdog_dev); - unregister_reboot_notifier(&softdog_notifier); } module_init(watchdog_init); -- cgit