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"); | ||||
|     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); | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bo Tu
						Bo Tu