powerpc: Split user/kernel definitions of struct pt_regs
authorMichael Ellerman <mpe@ellerman.id.au>
Fri, 12 Oct 2018 12:13:17 +0000 (23:13 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 14 Oct 2018 07:04:09 +0000 (18:04 +1100)
commit002af9391bfbe84f8e491bb10bd9c6001a6becee
treef7e1cdb3d2e2f48327908e4211b3074bca8c6659
parent7f995d3ba6f2bfbe274f5a012f5b549f881e78fe
powerpc: Split user/kernel definitions of struct pt_regs

We use a shared definition for struct pt_regs in uapi/asm/ptrace.h.
That means the layout of the structure is ABI, ie. we can't change it.

That would be fine if it was only used to describe the user-visible
register state of a process, but it's also the struct we use in the
kernel to describe the registers saved in an interrupt frame.

We'd like more flexibility in the content (and possibly layout) of the
kernel version of the struct, but currently that's not possible.

So split the definition into a user-visible definition which remains
unchanged, and a kernel internal one.

At the moment they're still identical, and we check that at build
time. That's because we have code (in ptrace etc.) that assumes that
they are the same. We will fix that code in future patches, and then
we can break the strict symmetry between the two structs.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/ptrace.h
arch/powerpc/include/uapi/asm/ptrace.h
arch/powerpc/kernel/ptrace.c