Message ID | 20240831041934.1629216-4-pulehui@huaweicloud.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 4a4c4c0d0a42079d2fa97a232895c56ac2f3f573 |
Headers | show |
Series | Fix accessing first syscall argument on RV64 | expand |
On Fri, Aug 30, 2024 at 9:17 PM Pu Lehui <pulehui@huaweicloud.com> wrote: > > From: Pu Lehui <pulehui@huawei.com> > > Considering that CO-RE direct read access to the first system call > argument is already available on s390 and arm64, let's enable > test_bpf_syscall_macro:syscall_arg1 on these architectures. > > Signed-off-by: Pu Lehui <pulehui@huawei.com> > --- > .../testing/selftests/bpf/prog_tests/test_bpf_syscall_macro.c | 4 ---- > tools/testing/selftests/bpf/progs/bpf_syscall_macro.c | 2 -- > 2 files changed, 6 deletions(-) > > diff --git a/tools/testing/selftests/bpf/prog_tests/test_bpf_syscall_macro.c b/tools/testing/selftests/bpf/prog_tests/test_bpf_syscall_macro.c > index 2900c5e9a016..1750c29b94f8 100644 > --- a/tools/testing/selftests/bpf/prog_tests/test_bpf_syscall_macro.c > +++ b/tools/testing/selftests/bpf/prog_tests/test_bpf_syscall_macro.c > @@ -38,11 +38,7 @@ void test_bpf_syscall_macro(void) > /* check whether args of syscall are copied correctly */ > prctl(exp_arg1, exp_arg2, exp_arg3, exp_arg4, exp_arg5); > > -#if defined(__aarch64__) || defined(__s390__) > - ASSERT_NEQ(skel->bss->arg1, exp_arg1, "syscall_arg1"); > -#else > ASSERT_EQ(skel->bss->arg1, exp_arg1, "syscall_arg1"); > -#endif > ASSERT_EQ(skel->bss->arg2, exp_arg2, "syscall_arg2"); > ASSERT_EQ(skel->bss->arg3, exp_arg3, "syscall_arg3"); > /* it cannot copy arg4 when uses PT_REGS_PARM4 on x86_64 */ > diff --git a/tools/testing/selftests/bpf/progs/bpf_syscall_macro.c b/tools/testing/selftests/bpf/progs/bpf_syscall_macro.c > index 1a476d8ed354..9e7d9674ce2a 100644 > --- a/tools/testing/selftests/bpf/progs/bpf_syscall_macro.c > +++ b/tools/testing/selftests/bpf/progs/bpf_syscall_macro.c > @@ -43,9 +43,7 @@ int BPF_KPROBE(handle_sys_prctl) > > /* test for PT_REGS_PARM */ > > -#if !defined(bpf_target_arm64) && !defined(bpf_target_s390) > bpf_probe_read_kernel(&tmp, sizeof(tmp), &PT_REGS_PARM1_SYSCALL(real_regs)); > -#endif > arg1 = tmp; There is no point in having tmp variable now, I cleaned that up as well > bpf_probe_read_kernel(&arg2, sizeof(arg2), &PT_REGS_PARM2_SYSCALL(real_regs)); > bpf_probe_read_kernel(&arg3, sizeof(arg3), &PT_REGS_PARM3_SYSCALL(real_regs)); > -- > 2.34.1 >
diff --git a/tools/testing/selftests/bpf/prog_tests/test_bpf_syscall_macro.c b/tools/testing/selftests/bpf/prog_tests/test_bpf_syscall_macro.c index 2900c5e9a016..1750c29b94f8 100644 --- a/tools/testing/selftests/bpf/prog_tests/test_bpf_syscall_macro.c +++ b/tools/testing/selftests/bpf/prog_tests/test_bpf_syscall_macro.c @@ -38,11 +38,7 @@ void test_bpf_syscall_macro(void) /* check whether args of syscall are copied correctly */ prctl(exp_arg1, exp_arg2, exp_arg3, exp_arg4, exp_arg5); -#if defined(__aarch64__) || defined(__s390__) - ASSERT_NEQ(skel->bss->arg1, exp_arg1, "syscall_arg1"); -#else ASSERT_EQ(skel->bss->arg1, exp_arg1, "syscall_arg1"); -#endif ASSERT_EQ(skel->bss->arg2, exp_arg2, "syscall_arg2"); ASSERT_EQ(skel->bss->arg3, exp_arg3, "syscall_arg3"); /* it cannot copy arg4 when uses PT_REGS_PARM4 on x86_64 */ diff --git a/tools/testing/selftests/bpf/progs/bpf_syscall_macro.c b/tools/testing/selftests/bpf/progs/bpf_syscall_macro.c index 1a476d8ed354..9e7d9674ce2a 100644 --- a/tools/testing/selftests/bpf/progs/bpf_syscall_macro.c +++ b/tools/testing/selftests/bpf/progs/bpf_syscall_macro.c @@ -43,9 +43,7 @@ int BPF_KPROBE(handle_sys_prctl) /* test for PT_REGS_PARM */ -#if !defined(bpf_target_arm64) && !defined(bpf_target_s390) bpf_probe_read_kernel(&tmp, sizeof(tmp), &PT_REGS_PARM1_SYSCALL(real_regs)); -#endif arg1 = tmp; bpf_probe_read_kernel(&arg2, sizeof(arg2), &PT_REGS_PARM2_SYSCALL(real_regs)); bpf_probe_read_kernel(&arg3, sizeof(arg3), &PT_REGS_PARM3_SYSCALL(real_regs));