Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

bpf: fix cgroup_skb prog test run direct packet access

This is needed in the context of Tetragon to test cgroup_skb programs
using BPF_PROG_TEST_RUN with direct packet access.

Commit b39b5f411dcf ("bpf: add cg_skb_is_valid_access for
BPF_PROG_TYPE_CGROUP_SKB") added direct packet access for cgroup_skb
programs and following commit 2cb494a36c98 ("bpf: add tests for direct
packet access from CGROUP_SKB") added tests to the verifier to ensure
that access to skb fields was possible and also fixed
bpf_prog_test_run_skb. However, is_direct_pkt_access was never set to
true for this program type, so data pointers were not computed when
using prog_test_run, making data_end always equal to zero (data_meta is
not accessible for cgroup_skb).

Signed-off-by: Mahe Tardy <mahe.tardy@gmail.com>
Link: https://lore.kernel.org/r/20241125152603.375898-1-mahe.tardy@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>

authored by

Mahe Tardy and committed by
Alexei Starovoitov
ed3e469d 98ebe5ef

+1
+1
net/bpf/test_run.c
··· 1018 1018 case BPF_PROG_TYPE_LWT_IN: 1019 1019 case BPF_PROG_TYPE_LWT_OUT: 1020 1020 case BPF_PROG_TYPE_LWT_XMIT: 1021 + case BPF_PROG_TYPE_CGROUP_SKB: 1021 1022 is_direct_pkt_access = true; 1022 1023 break; 1023 1024 default: