]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
bpf: Support pointer param types via SCALAR_VALUE for trampolines
authorSlava Imameev <slava.imameev@crowdstrike.com>
Sat, 14 Mar 2026 08:21:26 +0000 (19:21 +1100)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 24 Mar 2026 20:36:31 +0000 (13:36 -0700)
commit4145203841ba982c031f5717bbd1579d7655941d
treee37ff19549633999fe03ff97e0822a1f254666bd
parent7b4f1a29c704f2c28f32dca5fea6d173891c16a9
bpf: Support pointer param types via SCALAR_VALUE for trampolines

Add BPF verifier support for single- and multi-level pointer
parameters and return values in BPF trampolines by treating these
parameters as SCALAR_VALUE.

This extends the existing support for int and void pointers that are
already treated as SCALAR_VALUE.

This provides consistent logic for single and multi-level pointers:
if a type is treated as SCALAR for a single-level pointer, the same
applies to multi-level pointers. The exception is pointer-to-struct,
which is currently PTR_TO_BTF_ID for single-level but treated as
scalar for multi-level pointers since the verifier lacks context
to infer the size of target memory regions.

Safety is ensured by existing BTF verification, which rejects invalid
pointer types at the BTF verification stage.

Signed-off-by: Slava Imameev <slava.imameev@crowdstrike.com>
Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20260314082127.7939-2-slava.imameev@crowdstrike.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/btf.c