mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 12:03:54 +02:00
selftests/bpf: Add kprobe multi write ctx attach test
Adding test to check we can't attach kprobe multi program that writes to the context. It's x86_64 specific test. Acked-by: Andrii Nakryiko <andrii@kernel.org> Signed-off-by: Jiri Olsa <jolsa@kernel.org> Link: https://lore.kernel.org/r/20250916215301.664963-7-jolsa@kernel.org Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
1b881ee294
commit
3d237467a4
|
|
@ -7,6 +7,7 @@
|
|||
#include "kprobe_multi_session.skel.h"
|
||||
#include "kprobe_multi_session_cookie.skel.h"
|
||||
#include "kprobe_multi_verifier.skel.h"
|
||||
#include "kprobe_write_ctx.skel.h"
|
||||
#include "bpf/libbpf_internal.h"
|
||||
#include "bpf/hashmap.h"
|
||||
|
||||
|
|
@ -539,6 +540,30 @@ static void test_attach_override(void)
|
|||
kprobe_multi_override__destroy(skel);
|
||||
}
|
||||
|
||||
#ifdef __x86_64__
|
||||
static void test_attach_write_ctx(void)
|
||||
{
|
||||
struct kprobe_write_ctx *skel = NULL;
|
||||
struct bpf_link *link = NULL;
|
||||
|
||||
skel = kprobe_write_ctx__open_and_load();
|
||||
if (!ASSERT_OK_PTR(skel, "kprobe_write_ctx__open_and_load"))
|
||||
return;
|
||||
|
||||
link = bpf_program__attach_kprobe_opts(skel->progs.kprobe_multi_write_ctx,
|
||||
"bpf_fentry_test1", NULL);
|
||||
if (!ASSERT_ERR_PTR(link, "bpf_program__attach_kprobe_opts"))
|
||||
bpf_link__destroy(link);
|
||||
|
||||
kprobe_write_ctx__destroy(skel);
|
||||
}
|
||||
#else
|
||||
static void test_attach_write_ctx(void)
|
||||
{
|
||||
test__skip();
|
||||
}
|
||||
#endif
|
||||
|
||||
void serial_test_kprobe_multi_bench_attach(void)
|
||||
{
|
||||
if (test__start_subtest("kernel"))
|
||||
|
|
@ -578,5 +603,7 @@ void test_kprobe_multi_test(void)
|
|||
test_session_cookie_skel_api();
|
||||
if (test__start_subtest("unique_match"))
|
||||
test_unique_match();
|
||||
if (test__start_subtest("attach_write_ctx"))
|
||||
test_attach_write_ctx();
|
||||
RUN_TESTS(kprobe_multi_verifier);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,4 +12,11 @@ int kprobe_write_ctx(struct pt_regs *ctx)
|
|||
ctx->ax = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
SEC("kprobe.multi")
|
||||
int kprobe_multi_write_ctx(struct pt_regs *ctx)
|
||||
{
|
||||
ctx->ax = 0;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user