summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValentin Vidic <Valentin.Vidic@CARNet.hr>2017-05-05 21:07:33 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-08-06 09:21:10 -0700
commitfe57e31e40ae044d74dca595f1cdb9310ad982d7 (patch)
tree9cd2ce3c3088956d9c037f5d012d7d82534a0a6a
parentcd043db87e4c49fa909a81c0daa2a3786dacf349 (diff)
downloadtalos-op-linux-fe57e31e40ae044d74dca595f1cdb9310ad982d7.tar.gz
talos-op-linux-fe57e31e40ae044d74dca595f1cdb9310ad982d7.zip
ipmi/watchdog: fix watchdog timeout set on reboot
commit 860f01e96981a68553f3ca49f574ff14fe955e72 upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/char/ipmi/ipmi_watchdog.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c
index d165af8abe36..4161d9961a24 100644
--- a/drivers/char/ipmi/ipmi_watchdog.c
+++ b/drivers/char/ipmi/ipmi_watchdog.c
@@ -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);
OpenPOWER on IntegriCloud