As the layout of the stack changed for fsession, we'd better test bpf_get_func_ip() for it.
Signed-off-by: Menglong Dong <[email protected]> --- .../selftests/bpf/prog_tests/get_func_ip_test.c | 2 ++ .../testing/selftests/bpf/progs/get_func_ip_test.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/get_func_ip_test.c b/tools/testing/selftests/bpf/prog_tests/get_func_ip_test.c index c40242dfa8fb..a9078a1dbb07 100644 --- a/tools/testing/selftests/bpf/prog_tests/get_func_ip_test.c +++ b/tools/testing/selftests/bpf/prog_tests/get_func_ip_test.c @@ -46,6 +46,8 @@ static void test_function_entry(void) ASSERT_EQ(skel->bss->test5_result, 1, "test5_result"); ASSERT_EQ(skel->bss->test7_result, 1, "test7_result"); ASSERT_EQ(skel->bss->test8_result, 1, "test8_result"); + ASSERT_EQ(skel->bss->test9_result1, 1, "test9_result1"); + ASSERT_EQ(skel->bss->test9_result2, 1, "test9_result2"); cleanup: get_func_ip_test__destroy(skel); diff --git a/tools/testing/selftests/bpf/progs/get_func_ip_test.c b/tools/testing/selftests/bpf/progs/get_func_ip_test.c index 2011cacdeb18..9acb79fc7537 100644 --- a/tools/testing/selftests/bpf/progs/get_func_ip_test.c +++ b/tools/testing/selftests/bpf/progs/get_func_ip_test.c @@ -103,3 +103,17 @@ int BPF_URETPROBE(test8, int ret) test8_result = (const void *) addr == (const void *) uprobe_trigger; return 0; } + +__u64 test9_result1 = 0; +__u64 test9_result2 = 0; +SEC("fsession/bpf_fentry_test1") +int BPF_PROG(test9, int a) +{ + __u64 addr = bpf_get_func_ip(ctx); + + if (bpf_tracing_is_exit(ctx)) + test9_result1 = (const void *) addr == &bpf_fentry_test1; + else + test9_result2 = (const void *) addr == &bpf_fentry_test1; + return 0; +} -- 2.51.1.dirty
