Message ID | 20220204041955.1958263-10-iii@linux.ibm.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | BPF |
Headers | show |
Series | libbpf: Fix accessing syscall arguments | expand |
On Thu, Feb 3, 2022 at 8:20 PM Ilya Leoshkevich <iii@linux.ibm.com> wrote: > > riscv's syscall handlers get "unpacked" arguments instead of a > struct pt_regs pointer. Indicate this to libbpf using PT_REGS_SYSCALL > macro. > > Fixes: d084df3b7a4c ("libbpf: Fix the incorrect register read for syscalls on x86_64") This doesn't really fix that commit, it just adds an analogous fix for a different architecture. > Reported-by: Heiko Carstens <hca@linux.ibm.com> > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > tools/lib/bpf/bpf_tracing.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/tools/lib/bpf/bpf_tracing.h b/tools/lib/bpf/bpf_tracing.h > index c21aaecd711b..2b707aff0763 100644 > --- a/tools/lib/bpf/bpf_tracing.h > +++ b/tools/lib/bpf/bpf_tracing.h > @@ -213,7 +213,8 @@ > #define __PT_FP_REG fp > #define __PT_RC_REG a5 > #define __PT_SP_REG sp > -#define __PT_IP_REG epc > +#define __PT_IP_REG pc Is this epc -> pc change intentional? If yes, please split it into a separate patch with corresponding Fixes tag and explanation. > +#define PT_REGS_SYSCALL(ctx) ctx > > #endif > > -- > 2.34.1 >
diff --git a/tools/lib/bpf/bpf_tracing.h b/tools/lib/bpf/bpf_tracing.h index c21aaecd711b..2b707aff0763 100644 --- a/tools/lib/bpf/bpf_tracing.h +++ b/tools/lib/bpf/bpf_tracing.h @@ -213,7 +213,8 @@ #define __PT_FP_REG fp #define __PT_RC_REG a5 #define __PT_SP_REG sp -#define __PT_IP_REG epc +#define __PT_IP_REG pc +#define PT_REGS_SYSCALL(ctx) ctx #endif
riscv's syscall handlers get "unpacked" arguments instead of a struct pt_regs pointer. Indicate this to libbpf using PT_REGS_SYSCALL macro. Fixes: d084df3b7a4c ("libbpf: Fix the incorrect register read for syscalls on x86_64") Reported-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- tools/lib/bpf/bpf_tracing.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)