Re: [bpf-next v3 6/6] libbpf: fix invalid return address register in s390

Andrii Nakryiko
2022-12-29T22:26:16Z

On Fri, Dec 23, 2022 at 11:15 PM Daniel T. Lee <danieltimlee@gmail.com> wrote:
>
> There is currently an invalid register mapping in the s390 return
> address register. As the manual[1] states, the return address can be
> found at r14. In bpf_tracing.h, the s390 registers were named
> gprs(general purpose registers). This commit fixes the problem by
> correcting the mistyped mapping.
>
> [1]: https://uclibc.org/docs/psABI-s390x.pdf#page=14
>
> Fixes: 3cc31d794097 ("libbpf: Normalize PT_REGS_xxx() macro definitions")
> Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
> ---
> tools/lib/bpf/bpf_tracing.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/lib/bpf/bpf_tracing.h b/tools/lib/bpf/bpf_tracing.h
> index 2972dc25ff72..9c1b1689068d 100644
> --- a/tools/lib/bpf/bpf_tracing.h
> +++ b/tools/lib/bpf/bpf_tracing.h
> @@ -137,7 +137,7 @@ struct pt_regs___s390 {
> #define __PT_PARM3_REG gprs[4]
> #define __PT_PARM4_REG gprs[5]
> #define __PT_PARM5_REG gprs[6]
> -#define __PT_RET_REG grps[14]
> +#define __PT_RET_REG gprs[14]

oh, wow, what a typo. Thanks for fixing this! Applied patch set to bpf-next.

> #define __PT_FP_REG gprs[11] /* Works only with CONFIG_FRAME_POINTER */
> #define __PT_RC_REG gprs[2]
> #define __PT_SP_REG gprs[15]
> --
> 2.34.1
>