diff options
| author | Alexei Starovoitov <ast@kernel.org> | 2022-08-09 18:46:12 -0700 |
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2022-08-09 18:46:12 -0700 |
| commit | 46c8229c4317ba8576a206d285a34783390ba6ab (patch) | |
| tree | 8b2a5de71b7b3f5cdbc9972a27724030ea1010d2 /tools/testing/selftests/bpf/prog_tests/lru_bug.c | |
| parent | 19f68ed6dc90c93daf7e54d3350ea67fead7cbbf (diff) | |
| parent | de7b9927105bd2afe940c6ad22de6938edd8b1c1 (diff) | |
| download | linux-46c8229c4317ba8576a206d285a34783390ba6ab.tar.gz linux-46c8229c4317ba8576a206d285a34783390ba6ab.tar.bz2 linux-46c8229c4317ba8576a206d285a34783390ba6ab.zip | |
Merge branch 'Don't reinit map value in prealloc_lru_pop'
Kumar Kartikeya Dwivedi says:
====================
Fix for a bug in prealloc_lru_pop spotted while reading the code, then a test +
example that checks whether it is fixed.
Changelog:
----------
v2 -> v3:
v2: https://lore.kernel.org/bpf/20220809140615.21231-1-memxor@gmail.com
* Switch test to use kptr instead of kptr_ref to stabilize test runs
* Fix missing lru_bug__destroy (Yonghong)
* Collect Acks
v1 -> v2:
v1: https://lore.kernel.org/bpf/20220806014603.1771-1-memxor@gmail.com
* Expand commit log to include summary of the discussion with Yonghong
* Make lru_bug selftest serial to not mess up refcount for map_kptr test
====================
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/lru_bug.c')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/lru_bug.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/lru_bug.c b/tools/testing/selftests/bpf/prog_tests/lru_bug.c new file mode 100644 index 000000000000..3c7822390827 --- /dev/null +++ b/tools/testing/selftests/bpf/prog_tests/lru_bug.c @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0 +#include <test_progs.h> + +#include "lru_bug.skel.h" + +void test_lru_bug(void) +{ + struct lru_bug *skel; + int ret; + + skel = lru_bug__open_and_load(); + if (!ASSERT_OK_PTR(skel, "lru_bug__open_and_load")) + return; + ret = lru_bug__attach(skel); + if (!ASSERT_OK(ret, "lru_bug__attach")) + goto end; + usleep(1); + ASSERT_OK(skel->data->result, "prealloc_lru_pop doesn't call check_and_init_map_value"); +end: + lru_bug__destroy(skel); +} |
