]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ipmi/watchdog: fix watchdog timeout set on reboot
authorValentin Vidic <Valentin.Vidic@CARNet.hr>
Fri, 5 May 2017 19:07:33 +0000 (21:07 +0200)
committerCorey Minyard <cminyard@mvista.com>
Mon, 8 May 2017 19:01:42 +0000 (14:01 -0500)
systemd by default starts watchdog on reboot and sets the timer to
ShutdownWatchdogSec=10min.  Reboot handler in ipmi_watchdog than reduces
the timer to 120s which is not enough time to boot a Xen machine with
a lot of RAM.  As a result the machine is rebooted the second time
during the long run of (XEN) Scrubbing Free RAM.....

Fix this by setting the timer to 120s only if it was previously
set to a low value.

Signed-off-by: Valentin Vidic <Valentin.Vidic@CARNet.hr>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
drivers/char/ipmi/ipmi_watchdog.c

index d165af8abe36c7118f3ae602fec14d0f7230b965..4161d9961a2416b30ac92223e0068c47b9822b75 100644 (file)
@@ -1163,10 +1163,11 @@ static int wdog_reboot_handler(struct notifier_block *this,
                        ipmi_watchdog_state = WDOG_TIMEOUT_NONE;
                        ipmi_set_timeout(IPMI_SET_TIMEOUT_NO_HB);
                } else if (ipmi_watchdog_state != WDOG_TIMEOUT_NONE) {
-                       /* Set a long timer to let the reboot happens, but
-                          reboot if it hangs, but only if the watchdog
+                       /* Set a long timer to let the reboot happen or
+                          reset if it hangs, but only if the watchdog
                           timer was already running. */
-                       timeout = 120;
+                       if (timeout < 120)
+                               timeout = 120;
                        pretimeout = 0;
                        ipmi_watchdog_state = WDOG_TIMEOUT_RESET;
                        ipmi_set_timeout(IPMI_SET_TIMEOUT_NO_HB);