Message ID | 20221011071249.3471760-1-houtao@huaweicloud.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 62c69e89e81bfbdb9a87ae3e0599dcc6aacf786b |
Delegated to: | BPF |
Headers | show |
Series | [bpf-next] selftests/bpf: Use sys_pidfd_open() helper when possible | expand |
Hello: This patch was applied to bpf/bpf-next.git (master) by Andrii Nakryiko <andrii@kernel.org>: On Tue, 11 Oct 2022 15:12:49 +0800 you wrote: > From: Hou Tao <houtao1@huawei.com> > > SYS_pidfd_open may be undefined for old glibc, so using sys_pidfd_open() > helper defined in task_local_storage_helpers.h instead to fix potential > build failure. > > And according to commit 7615d9e1780e ("arch: wire-up pidfd_open()"), the > syscall number of pidfd_open is always 434 except for alpha architure, > so update the definition of __NR_pidfd_open accordingly. > > [...] Here is the summary with links: - [bpf-next] selftests/bpf: Use sys_pidfd_open() helper when possible https://git.kernel.org/bpf/bpf-next/c/62c69e89e81b You are awesome, thank you!
diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_iter.c b/tools/testing/selftests/bpf/prog_tests/bpf_iter.c index ecde236047fe..c39d40f4b268 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_iter.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_iter.c @@ -3,6 +3,7 @@ #include <test_progs.h> #include <unistd.h> #include <sys/syscall.h> +#include <task_local_storage_helpers.h> #include "bpf_iter_ipv6_route.skel.h" #include "bpf_iter_netlink.skel.h" #include "bpf_iter_bpf_map.skel.h" @@ -175,11 +176,6 @@ static void test_bpf_map(void) bpf_iter_bpf_map__destroy(skel); } -static int pidfd_open(pid_t pid, unsigned int flags) -{ - return syscall(SYS_pidfd_open, pid, flags); -} - static void check_bpf_link_info(const struct bpf_program *prog) { LIBBPF_OPTS(bpf_iter_attach_opts, opts); @@ -295,8 +291,8 @@ static void test_task_pidfd(void) union bpf_iter_link_info linfo; int pidfd; - pidfd = pidfd_open(getpid(), 0); - if (!ASSERT_GT(pidfd, 0, "pidfd_open")) + pidfd = sys_pidfd_open(getpid(), 0); + if (!ASSERT_GT(pidfd, 0, "sys_pidfd_open")) return; memset(&linfo, 0, sizeof(linfo)); diff --git a/tools/testing/selftests/bpf/task_local_storage_helpers.h b/tools/testing/selftests/bpf/task_local_storage_helpers.h index 711d5abb7d51..281f86132766 100644 --- a/tools/testing/selftests/bpf/task_local_storage_helpers.h +++ b/tools/testing/selftests/bpf/task_local_storage_helpers.h @@ -7,8 +7,12 @@ #include <sys/types.h> #ifndef __NR_pidfd_open +#ifdef __alpha__ +#define __NR_pidfd_open 544 +#else #define __NR_pidfd_open 434 #endif +#endif static inline int sys_pidfd_open(pid_t pid, unsigned int flags) {