user_pt_regs is used by eBPF in order to access userspace registers - see commit 466698e654e8 ("s390/bpf: correct broken uapi for BPF_PROG_TYPE_PERF_EVENT program type"). In order to access the first syscall argument from eBPF programs, we need to export orig_gpr2. args member is not in use since commit 56e62a737028 ("s390: convert to generic entry"), so move orig_gpr2 in its place. Signed-off-by: Ilya Leoshkevich <iii@xxxxxxxxxxxxx> --- arch/s390/include/asm/ptrace.h | 3 +-- arch/s390/include/uapi/asm/ptrace.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h index 4ffa8e7f0ed3..0278bacd61be 100644 --- a/arch/s390/include/asm/ptrace.h +++ b/arch/s390/include/asm/ptrace.h @@ -80,12 +80,11 @@ struct pt_regs { union { user_pt_regs user_regs; struct { - unsigned long args[1]; + unsigned long orig_gpr2; psw_t psw; unsigned long gprs[NUM_GPRS]; }; }; - unsigned long orig_gpr2; union { struct { unsigned int int_code; diff --git a/arch/s390/include/uapi/asm/ptrace.h b/arch/s390/include/uapi/asm/ptrace.h index ad64d673b5e6..d0cc737b8151 100644 --- a/arch/s390/include/uapi/asm/ptrace.h +++ b/arch/s390/include/uapi/asm/ptrace.h @@ -292,7 +292,7 @@ typedef struct { * the in-kernel pt_regs structure to user space. */ typedef struct { - unsigned long args[1]; + unsigned long orig_gpr2; psw_t psw; unsigned long gprs[NUM_GPRS]; } user_pt_regs; -- 2.34.1