Skip to content

Use watchdog_perform_action() for watchdogs currently using qemu_system_reset_request()

A few watchdog timer devices in QEMU currently use qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET) when the watchdog expires. This means that the QMP command to change the behaviour of watchdog-expiry has no effect on them. We should make these devices use watchdog_perform_action() instead.

There are four devices currently in the tree which this applies to:

hw/rtc/m48t59.c
hw/timer/etraxfs_timer.c
hw/timer/pxa2xx_timer.c
hw/watchdog/spapr_watchdog.c

etraxfs_timer.c is specific to the CRIS target architecture. That architecture is deprecated and the device will be removed entirely within a few releases, so it is not worth changing it. (The change would be a simple replacement of the old function call with the new one, though.)

pxa2xx_timer.c can simply replace the call.

m48t59.c can replace the call and also remove the comment immediately before it.

spapr_watchdog.c I am unsure about -- we should check with the spapr maintainers.

Each of these changes should be done as a separate patch; don't change all devices in one patch.

None of the other uses of qemu_system_reset_request() in hw/ are watchdog timers (they are all devices which permit the guest to directly trigger a reset by writing to an appropriate register).

Edited by Peter Maydell
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information