powerpc/32: Fix critical and debug interrupts on BOOKE
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Wed, 7 Jul 2021 05:55:07 +0000 (05:55 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 6 Aug 2021 22:53:59 +0000 (08:53 +1000)
commitb5cfc9cd7b0426e94ffd9e9ed79d1b00ace7780a
tree2a0c709b5cc14eb7d44588b64c41a47798f66a85
parent62376365048878f770d8b7d11b89b8b3e18018f1
powerpc/32: Fix critical and debug interrupts on BOOKE

32 bits BOOKE have special interrupts for debug and other
critical events.

When handling those interrupts, dedicated registers are saved
in the stack frame in addition to the standard registers, leading
to a shift of the pt_regs struct.

Since commit db297c3b07af ("powerpc/32: Don't save thread.regs on
interrupt entry"), the pt_regs struct is expected to be at the
same place all the time.

Instead of handling a special struct in addition to pt_regs, just
add those special registers to struct pt_regs.

Fixes: db297c3b07af ("powerpc/32: Don't save thread.regs on interrupt entry")
Cc: stable@vger.kernel.org
Reported-by: Radu Rendec <radu.rendec@gmail.com>
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/028d5483b4851b01ea4334d0751e7f260419092b.1625637264.git.christophe.leroy@csgroup.eu
arch/powerpc/include/asm/ptrace.h
arch/powerpc/kernel/asm-offsets.c
arch/powerpc/kernel/head_booke.h