From: Bo Tu Date: Tue, 19 Jan 2016 07:45:19 +0000 (+0100) Subject: watchdog/diag288: don't reset for action=none|debug|pause X-Git-Tag: TizenStudio_2.0_p2.4~27^2~6^2~8^2~278^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fba9110fee9fc438cfd9b6c1091bfda8710875b5;p=sdk%2Femulator%2Fqemu.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 Signed-off-by: Bo Tu Signed-off-by: Cornelia Huck --- diff --git a/hw/watchdog/wdt_diag288.c b/hw/watchdog/wdt_diag288.c index 2a885a4..ddda723 100644 --- a/hw/watchdog/wdt_diag288.c +++ b/hw/watchdog/wdt_diag288.c @@ -51,6 +51,13 @@ static void diag288_timer_expired(void *dev) { qemu_log_mask(CPU_LOG_RESET, "Watchdog timer expired.\n"); 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); }