On s390 64-bit the s390x ELF ABI [1] designates register 11 as the "preferred" frame pointer (FP) register in user space. [1]: s390x ELF ABI, https://github.com/IBM/s390x-abi/releases Signed-off-by: Jens Remus --- Notes (jremus): Changes in v4: - Split out "while at it" changes into separate commit that can go upstream independently. (Heiko) Changes in RFC v2: - Separate provide frame_pointer() into this new commit. arch/s390/include/asm/ptrace.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h index e6ec0ccf3d73..8f18d00b5fdb 100644 --- a/arch/s390/include/asm/ptrace.h +++ b/arch/s390/include/asm/ptrace.h @@ -250,6 +250,12 @@ static __always_inline unsigned long user_stack_pointer(const struct pt_regs *re return regs->gprs[15]; } +static __always_inline unsigned long frame_pointer(const struct pt_regs *regs) +{ + /* Return ABI-designated "preferred" frame-pointer register value. */ + return regs->gprs[11]; +} + static __always_inline unsigned long regs_get_register(const struct pt_regs *regs, unsigned int offset) { -- 2.51.0