aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2017-06-07 17:06:44 +1000
committerDavid Gibson <david@gibson.dropbear.id.au>2017-06-08 14:38:18 +1000
commit2c5534776b375bbaff3896420e41cb981d40e2bc (patch)
tree2c86af6e415e4b6a6b927826a2a151da5bfce2f8
parent8a9e0e7b890b2598da94646bf6a7272f3d3924de (diff)
downloadqemu-2c5534776b375bbaff3896420e41cb981d40e2bc.zip
qemu-2c5534776b375bbaff3896420e41cb981d40e2bc.tar.gz
qemu-2c5534776b375bbaff3896420e41cb981d40e2bc.tar.bz2
pseries: Correct panic behaviour for pseries machine type
The pseries machine type doesn't usually use the 'pvpanic' device as such, because it has a firmware/hypervisor facility with roughly the same purpose. The 'ibm,os-term' RTAS call notifies the hypervisor that the guest has crashed. Our implementation of this call was sending a GUEST_PANICKED qmp event; however, it was not doing the other usual panic actions, making its behaviour different from pvpanic for no good reason. To correct this, we should call qemu_system_guest_panicked() rather than directly sending the panic event. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Thomas Huth <thuth@redhat.com>
-rw-r--r--hw/ppc/spapr_rtas.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index 707c4d4..94a2799 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -293,12 +293,9 @@ static void rtas_ibm_os_term(PowerPCCPU *cpu,
target_ulong args,
uint32_t nret, target_ulong rets)
{
- target_ulong ret = 0;
+ qemu_system_guest_panicked(NULL);
- qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_PAUSE, false, NULL,
- &error_abort);
-
- rtas_st(rets, 0, ret);
+ rtas_st(rets, 0, RTAS_OUT_SUCCESS);
}
static void rtas_set_power_level(PowerPCCPU *cpu, sPAPRMachineState *spapr,