mirror of https://github.com/xqemu/xqemu.git
watchdog/diag288: don't reset for action=none|debug|pause
If the watchdog expires and the guest is not notified (NONE, DEBUG, PAUSE), we must not reset the watchdog device, otherwise watchdog_ping() and watchdog_stop() will fail when triggered by the guest. This reset behavior matches to the z/VM behavior when a custom command is to be executed on expiry. Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Bo Tu <tubo@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
0d035b6c5e
commit
fba9110fee
|
@ -51,6 +51,13 @@ static void diag288_timer_expired(void *dev)
|
||||||
{
|
{
|
||||||
qemu_log_mask(CPU_LOG_RESET, "Watchdog timer expired.\n");
|
qemu_log_mask(CPU_LOG_RESET, "Watchdog timer expired.\n");
|
||||||
watchdog_perform_action();
|
watchdog_perform_action();
|
||||||
|
/* Reset the watchdog only if the guest was notified about expiry. */
|
||||||
|
switch (get_watchdog_action()) {
|
||||||
|
case WDT_DEBUG:
|
||||||
|
case WDT_NONE:
|
||||||
|
case WDT_PAUSE:
|
||||||
|
return;
|
||||||
|
}
|
||||||
wdt_diag288_reset(dev);
|
wdt_diag288_reset(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue