aboutsummaryrefslogtreecommitdiff
path: root/softmmu/runstate.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2021-01-20 14:30:27 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2021-01-21 13:00:41 +0100
commitc27025e0448f65b67c36f962dd9e5f23f9ade735 (patch)
treec22f8cdd35a40d9b1857e321fa4e858ba1b6faec /softmmu/runstate.c
parentfef80ea073c4862bc9eaddb6ddb0ed970b8ad7c4 (diff)
runstate: cleanup reboot and panic actions
The possible choices for panic, reset and watchdog actions are inconsistent. "-action panic=poweroff" should be renamed to "-action panic=shutdown" on the command line. This is because "-action panic=poweroff" and "-action watchdog=poweroff" have slightly different semantics, the first does an unorderly exit while the second goes through qemu_cleanup(). With this change, -no-shutdown would not have to change "-action panic=pause" "pause", just like it does not have to change the reset action. "-action reboot=none" should be renamed to "-action reboot=reset". This should be self explanatory, since for example "-action panic=none" lets the guest proceed without taking any action. Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'softmmu/runstate.c')
-rw-r--r--softmmu/runstate.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/softmmu/runstate.c b/softmmu/runstate.c
index 6177693a30..beee050815 100644
--- a/softmmu/runstate.c
+++ b/softmmu/runstate.c
@@ -471,14 +471,15 @@ void qemu_system_guest_panicked(GuestPanicInformation *info)
}
/*
* TODO: Currently the available panic actions are: none, pause, and
- * poweroff, but in principle debug and reset could be supported as well.
+ * shutdown, but in principle debug and reset could be supported as well.
* Investigate any potential use cases for the unimplemented actions.
*/
- if (panic_action == PANIC_ACTION_PAUSE) {
+ if (panic_action == PANIC_ACTION_PAUSE
+ || (panic_action == PANIC_ACTION_SHUTDOWN && shutdown_action == SHUTDOWN_ACTION_PAUSE)) {
qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_PAUSE,
!!info, info);
vm_stop(RUN_STATE_GUEST_PANICKED);
- } else if (panic_action == PANIC_ACTION_POWEROFF) {
+ } else if (panic_action == PANIC_ACTION_SHUTDOWN) {
qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_POWEROFF,
!!info, info);
vm_stop(RUN_STATE_GUEST_PANICKED);