bpf, verifier: Correct tail_call_reachable for bpf prog
[ Upstream commit 01793ed86b5d7df1e956520b5474940743eb7ed8 ] It's confusing to inspect 'prog->aux->tail_call_reachable' with drgn[0], when bpf prog has tail call but 'tail_call_reachable' is false. This patch corrects 'tail_call_reachable' when bpf prog has tail call. Signed-off-by: Leon Hwang <hffilwlqm@gmail.com> Link: https://lore.kernel.org/r/20240610124224.34673-2-hffilwlqm@gmail.com Signed-off-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
b181e96e80
commit
3c9e7909df
|
@ -3064,8 +3064,10 @@ static int check_subprogs(struct bpf_verifier_env *env)
|
|||
|
||||
if (code == (BPF_JMP | BPF_CALL) &&
|
||||
insn[i].src_reg == 0 &&
|
||||
insn[i].imm == BPF_FUNC_tail_call)
|
||||
insn[i].imm == BPF_FUNC_tail_call) {
|
||||
subprog[cur_subprog].has_tail_call = true;
|
||||
subprog[cur_subprog].tail_call_reachable = true;
|
||||
}
|
||||
if (BPF_CLASS(code) == BPF_LD &&
|
||||
(BPF_MODE(code) == BPF_ABS || BPF_MODE(code) == BPF_IND))
|
||||
subprog[cur_subprog].has_ld_abs = true;
|
||||
|
|
Loading…
Reference in New Issue