Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/8xx: Fix software emulation interrupt

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: fbbcc3bb139e ("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

authored by

Christophe Leroy and committed by
Michael Ellerman
903178d0 d137845c

+1 -1
+1 -1
arch/powerpc/kernel/head_8xx.S
··· 165 165 /* On the MPC8xx, this is a software emulation interrupt. It occurs 166 166 * for all unimplemented and illegal instructions. 167 167 */ 168 - EXCEPTION(0x1000, SoftEmu, program_check_exception, EXC_XFER_STD) 168 + EXCEPTION(0x1000, SoftEmu, emulation_assist_interrupt, EXC_XFER_STD) 169 169 170 170 . = 0x1100 171 171 /*