Message ID | 20210701192044.78034-6-alexei.starovoitov@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | bpf: Introduce BPF timers. | expand |
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 62759164759d..45435471192b 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -9465,8 +9465,12 @@ static int visit_func_call_insn(int t, int insn_cnt, init_explored_state(env, t + 1); if (visit_callee) { init_explored_state(env, t); - ret = push_insn(t, t + insns[t].imm + 1, BRANCH, - env, false); + ret = push_insn(t, t + insns[t].imm + 1, BRANCH, env, + /* It's ok to allow recursion from CFG point of + * view. __check_func_call() will do the actual + * check. + */ + bpf_pseudo_func(insns + t)); } return ret; }