qemu-e2k/target
Benjamin Herrenschmidt 3621e2c960 target/ppc: Don't clobber MSR:EE on PM instructions
When issuing a power management instruction, we set MSR:EE
to force ppc_hw_interrupt() into calling powerpc_excp()
to deal with the fact that on P7 and P8, the system reset
caused by the wakeup needs to be generated regardless of
the MSR:EE value (using LPCR only).

This however means that the OS will see a bogus SRR1:EE
value which is a problem. It also prevents properly
implementing P9 STOP "light".

So fix this by instead putting some logic in ppc_hw_interrupt()
to decide whether to deliver or not by taking into account the
fact that we are waking up from sleep.

The LPCR isn't checked as this is done in the has_work() test.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20190215161648.9600-3-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-02-26 09:21:24 +11:00
..
alpha
arm target/arm: Implement ARMv8.3-JSConv 2019-02-21 18:17:46 +00:00
cris
hppa target/hppa: fix dcor instruction 2019-02-12 08:59:21 -08:00
i386 qapi: make query-cpu-definitions depend on specific targets 2019-02-18 14:44:05 +01:00
lm32
m68k
microblaze
mips target/mips: implement QMP query-cpu-definitions command 2019-02-21 19:36:47 +01:00
moxie
nios2
openrisc
ppc target/ppc: Don't clobber MSR:EE on PM instructions 2019-02-26 09:21:24 +11:00
riscv
s390x QAPI patches for 2019-02-18 2019-02-18 14:23:13 +00:00
sh4
sparc
tilegx
tricore
unicore32
xtensa