]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
bpf: Sort subprogs in topological order after check_cfg()
authorAlexei Starovoitov <ast@kernel.org>
Fri, 3 Apr 2026 02:44:17 +0000 (19:44 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 3 Apr 2026 15:34:30 +0000 (08:34 -0700)
commite6898ec751e4d8577b210f8e816ea9f8c2a7158a
tree8b17f798fa4f8b5580436b6fc13943f0fb682af9
parent503d21ef8eac1437d76919921115acf0aef328a0
bpf: Sort subprogs in topological order after check_cfg()

Add a pass that sorts subprogs in topological order so that iterating
subprog_topo_order[] walks leaf subprogs first, then their callers.
This is computed as a DFS post-order traversal of the CFG.

The pass runs after check_cfg() to ensure the CFG has been validated
before traversing and after postorder has been computed to avoid
walking dead code.

Reviewed-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20260403024422.87231-3-alexei.starovoitov@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/linux/bpf_verifier.h
kernel/bpf/verifier.c
tools/testing/selftests/bpf/progs/verifier_loops1.c
tools/testing/selftests/bpf/verifier/calls.c