powerpc/inst: Define ppc_inst_t as u32 on PPC32
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Mon, 29 Nov 2021 17:49:39 +0000 (18:49 +0100)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 9 Dec 2021 11:41:21 +0000 (22:41 +1100)
commit07b863aef5b682a482474b524f3df4957d2862ac
tree31a938f3c413bd9d04f8ab7397e0306990e4b4b8
parentc545b9f040f341038d5228932140fb17e0c156e2
powerpc/inst: Define ppc_inst_t as u32 on PPC32

Unlike PPC64 ABI, PPC32 uses the stack to pass a parameter defined
as a struct, even when the struct has a single simple element.

To avoid that, define ppc_inst_t as u32 on PPC32.

Keep it as 'struct ppc_inst' when __CHECKER__ is defined so that
sparse can perform type checking.

Also revert commit 511eea5e2ccd ("powerpc/kprobes: Fix Oops by passing
ppc_inst as a pointer to emulate_step() on ppc32") as now the
instruction to be emulated is passed as a register to emulate_step().

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/c6d0c46f598f76ad0b0a88bc0d84773bd921b17c.1638208156.git.christophe.leroy@csgroup.eu
arch/powerpc/include/asm/inst.h
arch/powerpc/kernel/optprobes.c