ppc/pnv: powerpc_excp: Do not discard HDECR exception when entering power-saving...
authorCédric Le Goater <clg@kaod.org>
Mon, 9 Aug 2021 13:45:24 +0000 (15:45 +0200)
committerDavid Gibson <david@gibson.dropbear.id.au>
Fri, 27 Aug 2021 02:41:13 +0000 (12:41 +1000)
The Hypervisor Decrementer exception should not be generated while the
CPU is in power-saving mode (see cpu_ppc_hdecr_excp()). However,
discarding the exception before entering the power-saving mode is
wrong since we would loose a previously generated HDEC.

Fixes: 4b236b621bf0 ("ppc: Initial HDEC support")
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20210809134547.689560-4-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
target/ppc/excp_helper.c

index a79a0ed465e52bdc9fd975cf22fa31f64305cead..7b6ac16eef720f2ef30829e0cb467b1bce03c8e2 100644 (file)
@@ -1211,12 +1211,6 @@ void helper_pminsn(CPUPPCState *env, powerpc_pm_insn_t insn)
     cs = env_cpu(env);
     cs->halted = 1;
 
-    /*
-     * The architecture specifies that HDEC interrupts are discarded
-     * in PM states
-     */
-    env->pending_interrupts &= ~(1 << PPC_INTERRUPT_HDECR);
-
     /* Condition for waking up at 0x100 */
     env->resume_as_sreset = (insn != PPC_PM_STOP) ||
         (env->spr[SPR_PSSCR] & PSSCR_EC);