powerpc: Add build-time check of ptrace PT_xx defines
authorMichael Ellerman <mpe@ellerman.id.au>
Wed, 30 Oct 2019 11:12:31 +0000 (22:12 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 30 Oct 2019 11:31:54 +0000 (22:31 +1100)
commitb9e0805abf2e92fc275ac5fbd8c1c9a92b00413d
tree6797e14f53de5e4eb9ca899d08008dfbac6ff05c
parent5c74f79958682fccd82a6029c53859d1dab3b239
powerpc: Add build-time check of ptrace PT_xx defines

As part of the uapi we export a lot of PT_xx defines for each register
in struct pt_regs. These are expressed as an index from gpr[0], in
units of unsigned long.

Currently there's nothing tying the values of those defines to the
actual layout of the struct.

But we *don't* want to change the uapi defines to derive the PT_xx
values based on the layout of the struct, those values are ABI and
must never change.

Instead we want to do the reverse, make sure that the layout of the
struct never changes vs the PT_xx defines. So add build time checks of
that.

This probably seems paranoid, but at least once in the past someone
has sent a patch that would have broken the ABI if it hadn't been
spotted. Although it probably would have been detected via testing,
it's preferable to just quash any issues at the source.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20191030111231.22720-1-mpe@ellerman.id.au
arch/powerpc/kernel/ptrace.c