bpf, verifier: Correct tail_call_reachable for bpf prog
BugLink: https://bugs.launchpad.net/bugs/2085849 [ 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> Signed-off-by: Manuel Diewald <manuel.diewald@canonical.com> Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
This commit is contained in:
committed by
Mehmet Basaran
parent
580ae545b5
commit
16864a69bd
@@ -2941,8 +2941,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;
|
||||
|
||||
Reference in New Issue
Block a user