]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selftests/bpf: More open-coded gettid syscall cleanup
authorAlan Maguire <alan.maguire@oracle.com>
Thu, 11 Sep 2025 16:30:56 +0000 (17:30 +0100)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 15 Sep 2025 18:39:24 +0000 (20:39 +0200)
Commit 0e2fb011a0ba ("selftests/bpf: Clean up open-coded gettid syscall
invocations") addressed the issue that older libc may not have a gettid()
function call wrapper for the associated syscall.

A few more instances have crept into tests, use sys_gettid() instead, and
poison raw gettid() usage to avoid future issues.

Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20250911163056.543071-1-alan.maguire@oracle.com
tools/testing/selftests/bpf/bpf_util.h
tools/testing/selftests/bpf/network_helpers.c
tools/testing/selftests/bpf/prog_tests/cgroup_xattr.c
tools/testing/selftests/bpf/prog_tests/kernel_flag.c
tools/testing/selftests/bpf/prog_tests/task_local_data.h
tools/testing/selftests/bpf/prog_tests/test_task_local_data.c

index 5f6963a320d73252a437ffca6da56403642e2d61..4bc2d25f33e18026440f092c7907f10a23b2d00f 100644 (file)
@@ -67,6 +67,9 @@ static inline void bpf_strlcpy(char *dst, const char *src, size_t sz)
 #define sys_gettid() syscall(SYS_gettid)
 #endif
 
+/* and poison usage to ensure it does not creep back in. */
+#pragma GCC poison gettid
+
 #ifndef ENOTSUPP
 #define ENOTSUPP 524
 #endif
index 72b5c174ab3bb8f675148a607fefe691e14296a6..cdf7b664144420a9dc1776b91c77bdeab8476fca 100644 (file)
@@ -457,7 +457,7 @@ int append_tid(char *str, size_t sz)
        if (end + 8 > sz)
                return -1;
 
-       sprintf(&str[end], "%07d", gettid());
+       sprintf(&str[end], "%07ld", sys_gettid());
        str[end + 7] = '\0';
 
        return 0;
index e0dd966e4a3ef329531e4c7fbb1b7d637ff9ddd0..5ad904e9d15df9263b3dd2acb4c124953a56c574 100644 (file)
@@ -44,7 +44,7 @@ static void test_read_cgroup_xattr(void)
        if (!ASSERT_OK_PTR(skel, "read_cgroupfs_xattr__open_and_load"))
                goto out;
 
-       skel->bss->target_pid = gettid();
+       skel->bss->target_pid = sys_gettid();
 
        if (!ASSERT_OK(read_cgroupfs_xattr__attach(skel), "read_cgroupfs_xattr__attach"))
                goto out;
index a133354ac9bc295f8538cfb37a6257154d2dcab1..97b00c7efe94314735823e6eef405da5c6c805d6 100644 (file)
@@ -16,7 +16,7 @@ void test_kernel_flag(void)
        if (!ASSERT_OK_PTR(lsm_skel, "lsm_skel"))
                return;
 
-       lsm_skel->bss->monitored_tid = gettid();
+       lsm_skel->bss->monitored_tid = sys_gettid();
 
        ret = test_kernel_flag__attach(lsm_skel);
        if (!ASSERT_OK(ret, "test_kernel_flag__attach"))
index a408d10c368821e83ca2af6e4d2c7c274537cbe2..2de38776a2d49972e20b66fcd10489bcf45c1c62 100644 (file)
@@ -158,7 +158,7 @@ static int __tld_init_data_p(int map_fd)
        void *data_alloc = NULL;
        int err, tid_fd = -1;
 
-       tid_fd = syscall(SYS_pidfd_open, gettid(), O_EXCL);
+       tid_fd = syscall(SYS_pidfd_open, sys_gettid(), O_EXCL);
        if (tid_fd < 0) {
                err = -errno;
                goto out;
index 3b5cd2cd89c7c2d8f352e219cab16db64885f452..9fd6306b455c3c147607df289c92f8a4af931220 100644 (file)
@@ -63,7 +63,7 @@ void *test_task_local_data_basic_thread(void *arg)
        if (!ASSERT_OK_PTR(value2, "tld_get_data"))
                goto out;
 
-       tid = gettid();
+       tid = sys_gettid();
 
        *value0 = tid + 0;
        *value1 = tid + 1;