selftests/bpf: Add kprobe_multi check to module attach test
authorJiri Olsa <jolsa@kernel.org>
Tue, 25 Oct 2022 13:41:47 +0000 (15:41 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 25 Oct 2022 17:14:51 +0000 (10:14 -0700)
Adding test that makes sure the kernel module won't be removed
if there's kprobe multi link defined on top of it.

Acked-by: Song Liu <song@kernel.org>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20221025134148.3300700-8-jolsa@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/prog_tests/module_attach.c
tools/testing/selftests/bpf/progs/test_module_attach.c

index 6d0e50d..7fc01ff 100644 (file)
@@ -103,6 +103,13 @@ void test_module_attach(void)
        ASSERT_ERR(delete_module("bpf_testmod", 0), "delete_module");
        bpf_link__destroy(link);
 
+       link = bpf_program__attach(skel->progs.kprobe_multi);
+       if (!ASSERT_OK_PTR(link, "attach_kprobe_multi"))
+               goto cleanup;
+
+       ASSERT_ERR(delete_module("bpf_testmod", 0), "delete_module");
+       bpf_link__destroy(link);
+
 cleanup:
        test_module_attach__destroy(skel);
 }
index 08628af..8a1b50f 100644 (file)
@@ -110,4 +110,10 @@ int BPF_PROG(handle_fmod_ret,
        return 0; /* don't override the exit code */
 }
 
+SEC("kprobe.multi/bpf_testmod_test_read")
+int BPF_PROG(kprobe_multi)
+{
+       return 0;
+}
+
 char _license[] SEC("license") = "GPL";