aboutsummaryrefslogtreecommitdiff
path: root/tools/testing/selftests/bpf/prog_tests/map_ptr.c
diff options
context:
space:
mode:
authorGravatar Yauheni Kaliuta <yauheni.kaliuta@redhat.com> 2021-04-08 09:13:05 +0300
committerGravatar Andrii Nakryiko <andrii@kernel.org> 2021-04-08 23:54:47 -0700
commit7a85e4dfa7f5d052ae5016e96f1ee426a8870e78 (patch)
tree22cc3b3b4ff4dc5ab95e6e6392e586bf76593c29 /tools/testing/selftests/bpf/prog_tests/map_ptr.c
parentselftests/bpf: Pass page size from userspace in sockopt_sk (diff)
downloadlinux-7a85e4dfa7f5d052ae5016e96f1ee426a8870e78.tar.gz
linux-7a85e4dfa7f5d052ae5016e96f1ee426a8870e78.tar.bz2
linux-7a85e4dfa7f5d052ae5016e96f1ee426a8870e78.zip
selftests/bpf: Pass page size from userspace in map_ptr
Use ASSERT to check result but keep CHECK where format was used to report error. Use bpf_map__set_max_entries() to set map size dynamically from userspace according to page size. Zero-initialize the variable in bpf prog, otherwise it will cause problems on some versions of Clang. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20210408061310.95877-4-yauheni.kaliuta@redhat.com
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/map_ptr.c')
-rw-r--r--tools/testing/selftests/bpf/prog_tests/map_ptr.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/map_ptr.c b/tools/testing/selftests/bpf/prog_tests/map_ptr.c
index c230a573c373..4972f92205c7 100644
--- a/tools/testing/selftests/bpf/prog_tests/map_ptr.c
+++ b/tools/testing/selftests/bpf/prog_tests/map_ptr.c
@@ -12,11 +12,22 @@ void test_map_ptr(void)
__u32 duration = 0, retval;
char buf[128];
int err;
+ int page_size = getpagesize();
- skel = map_ptr_kern__open_and_load();
- if (CHECK(!skel, "skel_open_load", "open_load failed\n"))
+ skel = map_ptr_kern__open();
+ if (!ASSERT_OK_PTR(skel, "skel_open"))
return;
+ err = bpf_map__set_max_entries(skel->maps.m_ringbuf, page_size);
+ if (!ASSERT_OK(err, "bpf_map__set_max_entries"))
+ goto cleanup;
+
+ err = map_ptr_kern__load(skel);
+ if (!ASSERT_OK(err, "skel_load"))
+ goto cleanup;
+
+ skel->bss->page_size = page_size;
+
err = bpf_prog_test_run(bpf_program__fd(skel->progs.cg_skb), 1, &pkt_v4,
sizeof(pkt_v4), buf, NULL, &retval, NULL);