| From 97c2ab7986a1d28d66814f39b2055d8b7b88ab9d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 5 Feb 2021 08:56:13 +0000 |
| Subject: powerpc/8xx: Fix software emulation interrupt |
| |
| From: Christophe Leroy <christophe.leroy@csgroup.eu> |
| |
| [ 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: 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 |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/powerpc/kernel/head_8xx.S | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S |
| index 43884af0e35c4..95ecfec96b495 100644 |
| --- a/arch/powerpc/kernel/head_8xx.S |
| +++ b/arch/powerpc/kernel/head_8xx.S |
| @@ -301,7 +301,7 @@ SystemCall: |
| /* On the MPC8xx, this is a software emulation interrupt. It occurs |
| * for all unimplemented and illegal instructions. |
| */ |
| - EXCEPTION(0x1000, SoftEmu, program_check_exception, EXC_XFER_STD) |
| + EXCEPTION(0x1000, SoftEmu, emulation_assist_interrupt, EXC_XFER_STD) |
| |
| . = 0x1100 |
| /* |
| -- |
| 2.27.0 |
| |