hulk inclusion category: bugfix bugzilla: https://atomgit.com/openeuler/kernel/issues/8335 -------------------------------- The original commit is came from 80a4129fcf20 ("selftests/bpf: Add unit tests for bpf_arena_alloc/free_pages"). This commit fix test_loader that didn't support running bpf_prog_type_syscall programs. Fixes: 54b0c6cdfd3b ("selftests/bpf: Add selftest for bits iter") Signed-off-by: Luo Gengkun <luogengkun2@huawei.com> --- tools/testing/selftests/bpf/test_loader.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/test_loader.c b/tools/testing/selftests/bpf/test_loader.c index b4edd8454934..5cbd0ab1a4c9 100644 --- a/tools/testing/selftests/bpf/test_loader.c +++ b/tools/testing/selftests/bpf/test_loader.c @@ -480,7 +480,7 @@ static bool is_unpriv_capable_map(struct bpf_map *map) } } -static int do_prog_test_run(int fd_prog, int *retval) +static int do_prog_test_run(int fd_prog, int *retval, bool empty_opts) { __u8 tmp_out[TEST_DATA_LEN << 2] = {}; __u8 tmp_in[TEST_DATA_LEN] = {}; @@ -493,6 +493,11 @@ static int do_prog_test_run(int fd_prog, int *retval) .repeat = 1, ); + if (empty_opts) { + memset(&topts, 0, sizeof(struct bpf_test_run_opts)); + topts.sz = sizeof(struct bpf_test_run_opts); + } + err = bpf_prog_test_run_opts(fd_prog, &topts); saved_errno = errno; @@ -625,7 +630,8 @@ void run_subtest(struct test_loader *tester, } } - do_prog_test_run(bpf_program__fd(tprog), &retval); + do_prog_test_run(bpf_program__fd(tprog), &retval, + bpf_program__type(tprog) == BPF_PROG_TYPE_SYSCALL ? true : false); if (retval != subspec->retval && subspec->retval != POINTER_VALUE) { PRINT_FAIL("Unexpected retval: %d != %d\n", retval, subspec->retval); goto tobj_cleanup; -- 2.34.1