Skip to content

Commit e354179

Browse files
seehearfeelintel-lab-lkp
authored andcommitted
bpf: Return -ENOTSUPP if callbacks are not allowed in non-JITed programs
If CONFIG_BPF_JIT_ALWAYS_ON is not set and bpf_jit_enable is 0, there exist 6 failed tests. [root@linux bpf]# echo 0 > /proc/sys/net/core/bpf_jit_enable [root@linux bpf]# ./test_verifier | grep FAIL torvalds#107/p inline simple bpf_loop call FAIL torvalds#108/p don't inline bpf_loop call, flags non-zero FAIL torvalds#109/p don't inline bpf_loop call, callback non-constant FAIL torvalds#110/p bpf_loop_inline and a dead func FAIL torvalds#111/p bpf_loop_inline stack locations for loop vars FAIL torvalds#112/p inline bpf_loop call in a big program FAIL Summary: 505 PASSED, 266 SKIPPED, 6 FAILED The test log shows that callbacks are not allowed in non-JITed programs, interpreter doesn't support them yet, thus these tests should be skipped if jit is disabled, just return -ENOTSUPP instead of -EINVAL for pseudo calls in fixup_call_args(). With this patch: [root@linux bpf]# echo 0 > /proc/sys/net/core/bpf_jit_enable [root@linux bpf]# ./test_verifier | grep FAIL Summary: 505 PASSED, 272 SKIPPED, 0 FAILED Signed-off-by: Tiezhu Yang <[email protected]>
1 parent 5abde62 commit e354179

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

kernel/bpf/verifier.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19069,7 +19069,7 @@ static int fixup_call_args(struct bpf_verifier_env *env)
1906919069
* have to be rejected, since interpreter doesn't support them yet.
1907019070
*/
1907119071
verbose(env, "callbacks are not allowed in non-JITed programs\n");
19072-
return -EINVAL;
19072+
return -ENOTSUPP;
1907319073
}
1907419074

1907519075
if (!bpf_pseudo_call(insn))

0 commit comments

Comments
 (0)