OSDN Git Service

libbpf: Fix accessing the first syscall argument on s390
authorIlya Leoshkevich <iii@linux.ibm.com>
Wed, 9 Feb 2022 02:17:45 +0000 (03:17 +0100)
committerAndrii Nakryiko <andrii@kernel.org>
Wed, 9 Feb 2022 05:37:50 +0000 (21:37 -0800)
commit1f22a6f9f9a0f50218a11a0554709fd34a821fa3
tree8a0c033171027bd17fd306411b10c34cac437b4b
parentfbca4a2f649730b67488a8b36140ce4d2cf13c63
libbpf: Fix accessing the first syscall argument on s390

On s390, the first syscall argument should be accessed via orig_gpr2
(see arch/s390/include/asm/syscall.h). Currently gpr[2] is used
instead, leading to bpf_syscall_macro test failure.

orig_gpr2 cannot be added to user_pt_regs, since its layout is a part
of the ABI. Therefore provide access to it only through
PT_REGS_PARM1_CORE_SYSCALL() by using a struct pt_regs flavor.

Reported-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220209021745.2215452-11-iii@linux.ibm.com
tools/lib/bpf/bpf_tracing.h