mirror of https://gitee.com/openkylin/qemu.git
spapr/rtas: do not reset the MSR in stop-self command
When a CPU is stopped with the 'stop-self' RTAS call, its state 'halted' is switched to 1 and, in this case, the MSR is not taken into account anymore in the cpu_has_work() routine. Only the pending hardware interrupts are checked with their LPCR:PECE* enablement bit. The CPU is now also protected from the decrementer interrupt by the LPCR:PECE* bits which are disabled in the 'stop-self' RTAS call. Reseting the MSR is pointless. Signed-off-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
d6322252b3
commit
3fe4f0fc85
|
@ -206,16 +206,6 @@ static void rtas_stop_self(PowerPCCPU *cpu, sPAPRMachineState *spapr,
|
|||
|
||||
cs->halted = 1;
|
||||
qemu_cpu_kick(cs);
|
||||
/*
|
||||
* While stopping a CPU, the guest calls H_CPPR which
|
||||
* effectively disables interrupts on XICS level.
|
||||
* However decrementer interrupts in TCG can still
|
||||
* wake the CPU up so here we disable interrupts in MSR
|
||||
* as well.
|
||||
* As rtas_start_cpu() resets the whole MSR anyway, there is
|
||||
* no need to bother with specific bits, we just clear it.
|
||||
*/
|
||||
env->msr = 0;
|
||||
|
||||
/* Disable Power-saving mode Exit Cause exceptions for the CPU.
|
||||
* This could deliver an interrupt on a dying CPU and crash the
|
||||
|
|
Loading…
Reference in New Issue