[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v2 4/4] spapr/rtas: do not reset the MSR in stop-self
From: |
Cédric Le Goater |
Subject: |
[Qemu-ppc] [PATCH v2 4/4] spapr/rtas: do not reset the MSR in stop-self command |
Date: |
Mon, 9 Oct 2017 17:49:30 +0200 |
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 <address@hidden>
Reviewed-by: David Gibson <address@hidden>
---
hw/ppc/spapr_rtas.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index dfdbf1e2c6f8..dc825bc58263 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -210,16 +210,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;
/* Don't let the decremeter run on a CPU being stopped. This could
* deliver an interrupt on a dying CPU and crash the guest.
--
2.13.6
- [Qemu-ppc] [PATCH v2 2/4] spapr/rtas: disable the decrementer interrupt when a CPU is unplugged, (continued)
[Qemu-ppc] [PATCH v2 3/4] spapr/rtas: fix reboot of a SMP TCG guest, Cédric Le Goater, 2017/10/09
[Qemu-ppc] [PATCH v2 4/4] spapr/rtas: do not reset the MSR in stop-self command,
Cédric Le Goater <=