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>
This commit is contained in:
parent
8a9e0e7b89
commit
2c5534776b
@ -293,12 +293,9 @@ static void rtas_ibm_os_term(PowerPCCPU *cpu,
|
|||||||
target_ulong args,
|
target_ulong args,
|
||||||
uint32_t nret, target_ulong rets)
|
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,
|
rtas_st(rets, 0, RTAS_OUT_SUCCESS);
|
||||||
&error_abort);
|
|
||||||
|
|
||||||
rtas_st(rets, 0, ret);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtas_set_power_level(PowerPCCPU *cpu, sPAPRMachineState *spapr,
|
static void rtas_set_power_level(PowerPCCPU *cpu, sPAPRMachineState *spapr,
|
||||||
|
Loading…
Reference in New Issue
Block a user