powerpc/8xx: Fix software emulation interrupt
[ Upstream commit 903178d0ce6bb30ef80a3604ab9ee2b57869fbc9 ]
For unimplemented instructions or unimplemented SPRs, the 8xx triggers
a "Software Emulation Exception" (0x1000). That interrupt doesn't set
reason bits in SRR1 as the "Program Check Exception" does.
Go through emulation_assist_interrupt() to set REASON_ILLEGAL.
Fixes: fbbcc3bb13
("powerpc/8xx: Remove SoftwareEmulation()")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/ad782af87a222efc79cfb06079b0fd23d4224eaf.1612515180.git.christophe.leroy@csgroup.eu
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
ba5c8a0ee6
commit
ecfae933df
@ -191,7 +191,7 @@ SystemCall:
|
|||||||
/* On the MPC8xx, this is a software emulation interrupt. It occurs
|
/* On the MPC8xx, this is a software emulation interrupt. It occurs
|
||||||
* for all unimplemented and illegal instructions.
|
* for all unimplemented and illegal instructions.
|
||||||
*/
|
*/
|
||||||
EXCEPTION(0x1000, SoftEmu, program_check_exception, EXC_XFER_STD)
|
EXCEPTION(0x1000, SoftEmu, emulation_assist_interrupt, EXC_XFER_STD)
|
||||||
|
|
||||||
/* Called from DataStoreTLBMiss when perf TLB misses events are activated */
|
/* Called from DataStoreTLBMiss when perf TLB misses events are activated */
|
||||||
#ifdef CONFIG_PERF_EVENTS
|
#ifdef CONFIG_PERF_EVENTS
|
||||||
|
Loading…
Reference in New Issue
Block a user