This will be used in testing standalone module BTF. Signed-off-by: Alan Maguire <alan.maguire@xxxxxxxxxx> --- .../selftests/bpf/prog_tests/bpf_mod_race.c | 8 +++---- .../selftests/bpf/prog_tests/module_attach.c | 6 ++--- tools/testing/selftests/bpf/test_progs.c | 6 ++--- tools/testing/selftests/bpf/test_verifier.c | 6 ++--- tools/testing/selftests/bpf/testing_helpers.c | 24 ++++++++++--------- tools/testing/selftests/bpf/testing_helpers.h | 4 ++-- 6 files changed, 28 insertions(+), 26 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_mod_race.c b/tools/testing/selftests/bpf/prog_tests/bpf_mod_race.c index fe2c502e5089..c4aeb40390a3 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_mod_race.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_mod_race.c @@ -48,7 +48,7 @@ static _Atomic enum bpf_test_state state = _TS_INVALID; static void *load_module_thread(void *p) { - if (!ASSERT_NEQ(load_bpf_testmod(false), 0, "load_module_thread must fail")) + if (!ASSERT_NEQ(load_bpf_testmod("bpf_testmod", false), 0, "load_module_thread must fail")) atomic_store(&state, TS_MODULE_LOAD); else atomic_store(&state, TS_MODULE_LOAD_FAIL); @@ -100,7 +100,7 @@ static void test_bpf_mod_race_config(const struct test_config *config) if (!ASSERT_NEQ(fault_addr, MAP_FAILED, "mmap for uffd registration")) return; - if (!ASSERT_OK(unload_bpf_testmod(false), "unload bpf_testmod")) + if (!ASSERT_OK(unload_bpf_testmod("bpf_testmod", false), "unload bpf_testmod")) goto end_mmap; skel = bpf_mod_race__open(); @@ -178,8 +178,8 @@ static void test_bpf_mod_race_config(const struct test_config *config) bpf_mod_race__destroy(skel); ASSERT_OK(kern_sync_rcu(), "kern_sync_rcu"); end_module: - unload_bpf_testmod(false); - ASSERT_OK(load_bpf_testmod(false), "restore bpf_testmod"); + unload_bpf_testmod("bpf_testmod", false); + ASSERT_OK(load_bpf_testmod("bpf_testmod", false), "restore bpf_testmod"); end_mmap: munmap(fault_addr, 4096); atomic_store(&state, _TS_INVALID); diff --git a/tools/testing/selftests/bpf/prog_tests/module_attach.c b/tools/testing/selftests/bpf/prog_tests/module_attach.c index f53d658ed080..9f1f00c63d30 100644 --- a/tools/testing/selftests/bpf/prog_tests/module_attach.c +++ b/tools/testing/selftests/bpf/prog_tests/module_attach.c @@ -89,21 +89,21 @@ void test_module_attach(void) if (!ASSERT_OK_PTR(link, "attach_fentry")) goto cleanup; - ASSERT_ERR(unload_bpf_testmod(false), "unload_bpf_testmod"); + ASSERT_ERR(unload_bpf_testmod("bpf_testmod", false), "unload_bpf_testmod"); bpf_link__destroy(link); link = bpf_program__attach(skel->progs.handle_fexit); if (!ASSERT_OK_PTR(link, "attach_fexit")) goto cleanup; - ASSERT_ERR(unload_bpf_testmod(false), "unload_bpf_testmod"); + ASSERT_ERR(unload_bpf_testmod("bpf_testmod", false), "unload_bpf_testmod"); bpf_link__destroy(link); link = bpf_program__attach(skel->progs.kprobe_multi); if (!ASSERT_OK_PTR(link, "attach_kprobe_multi")) goto cleanup; - ASSERT_ERR(unload_bpf_testmod(false), "unload_bpf_testmod"); + ASSERT_ERR(unload_bpf_testmod("bpf_testmod", false), "unload_bpf_testmod"); bpf_link__destroy(link); cleanup: diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c index 1b9387890148..a3a89743e7aa 100644 --- a/tools/testing/selftests/bpf/test_progs.c +++ b/tools/testing/selftests/bpf/test_progs.c @@ -1659,9 +1659,9 @@ int main(int argc, char **argv) env.has_testmod = true; if (!env.list_test_names) { /* ensure previous instance of the module is unloaded */ - unload_bpf_testmod(verbose()); + unload_bpf_testmod("bpf_testmod", verbose()); - if (load_bpf_testmod(verbose())) { + if (load_bpf_testmod("bpf_testmod", verbose())) { fprintf(env.stderr, "WARNING! Selftests relying on bpf_testmod.ko will be skipped.\n"); env.has_testmod = false; } @@ -1761,7 +1761,7 @@ int main(int argc, char **argv) close(env.saved_netns_fd); out: if (!env.list_test_names && env.has_testmod) - unload_bpf_testmod(verbose()); + unload_bpf_testmod("bpf_testmod", verbose()); free_test_selector(&env.test_selector); free_test_selector(&env.subtest_selector); diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c index 98107e0452d3..b712424d6a10 100644 --- a/tools/testing/selftests/bpf/test_verifier.c +++ b/tools/testing/selftests/bpf/test_verifier.c @@ -1804,9 +1804,9 @@ static int do_test(bool unpriv, unsigned int from, unsigned int to) int i, passes = 0, errors = 0; /* ensure previous instance of the module is unloaded */ - unload_bpf_testmod(verbose); + unload_bpf_testmod("bpf_testmod", verbose); - if (load_bpf_testmod(verbose)) + if (load_bpf_testmod("bpf_testmod", verbose)) return EXIT_FAILURE; for (i = from; i < to; i++) { @@ -1836,7 +1836,7 @@ static int do_test(bool unpriv, unsigned int from, unsigned int to) } } - unload_bpf_testmod(verbose); + unload_bpf_testmod("bpf_testmod", verbose); kfuncs_cleanup(); printf("Summary: %d PASSED, %d SKIPPED, %d FAILED\n", passes, diff --git a/tools/testing/selftests/bpf/testing_helpers.c b/tools/testing/selftests/bpf/testing_helpers.c index 8d994884c7b4..d5cde3f298f1 100644 --- a/tools/testing/selftests/bpf/testing_helpers.c +++ b/tools/testing/selftests/bpf/testing_helpers.c @@ -338,45 +338,47 @@ static int delete_module(const char *name, int flags) return syscall(__NR_delete_module, name, flags); } -int unload_bpf_testmod(bool verbose) +int unload_bpf_testmod(const char *name, bool verbose) { if (kern_sync_rcu()) fprintf(stdout, "Failed to trigger kernel-side RCU sync!\n"); - if (delete_module("bpf_testmod", 0)) { + if (delete_module(name, 0)) { if (errno == ENOENT) { if (verbose) - fprintf(stdout, "bpf_testmod.ko is already unloaded.\n"); + fprintf(stdout, "%s.ko is already unloaded.\n", name); return -1; } - fprintf(stdout, "Failed to unload bpf_testmod.ko from kernel: %d\n", -errno); + fprintf(stdout, "Failed to unload %s.ko from kernel: %d\n", name, -errno); return -1; } if (verbose) - fprintf(stdout, "Successfully unloaded bpf_testmod.ko.\n"); + fprintf(stdout, "Successfully unloaded %s.ko.\n", name); return 0; } -int load_bpf_testmod(bool verbose) +int load_bpf_testmod(const char *name, bool verbose) { + char koname[PATH_MAX]; int fd; if (verbose) - fprintf(stdout, "Loading bpf_testmod.ko...\n"); + fprintf(stdout, "Loading %s.ko...\n", name); - fd = open("bpf_testmod.ko", O_RDONLY); + snprintf(koname, sizeof(koname), "%s.ko", name); + fd = open(koname, O_RDONLY); if (fd < 0) { - fprintf(stdout, "Can't find bpf_testmod.ko kernel module: %d\n", -errno); + fprintf(stdout, "Can't find %s.ko kernel module: %d\n", name, -errno); return -ENOENT; } if (finit_module(fd, "", 0)) { - fprintf(stdout, "Failed to load bpf_testmod.ko into the kernel: %d\n", -errno); + fprintf(stdout, "Failed to load %s.ko into the kernel: %d\n", name, -errno); close(fd); return -EINVAL; } close(fd); if (verbose) - fprintf(stdout, "Successfully loaded bpf_testmod.ko.\n"); + fprintf(stdout, "Successfully loaded %s.ko.\n", name); return 0; } diff --git a/tools/testing/selftests/bpf/testing_helpers.h b/tools/testing/selftests/bpf/testing_helpers.h index 5b7a55136741..831329ad5091 100644 --- a/tools/testing/selftests/bpf/testing_helpers.h +++ b/tools/testing/selftests/bpf/testing_helpers.h @@ -30,8 +30,8 @@ int parse_test_list_file(const char *path, bool is_glob_pattern); __u64 read_perf_max_sample_freq(void); -int load_bpf_testmod(bool verbose); -int unload_bpf_testmod(bool verbose); +int load_bpf_testmod(const char *name, bool verbose); +int unload_bpf_testmod(const char *name, bool verbose); int kern_sync_rcu(void); static inline __u64 get_time_ns(void) -- 2.31.1