This patchset backport commit to fix BPF selftests failure in stable 6.12 since commit 972bafed67ca ("bpf, test_run: Fix use-after-free issue in eth_skb_pkt_type()"), which is backport of upstream commit 6b3d638ca897.
The fix needed is upstream commit c7f2188d68c1 ("selftests/bpf: Adjust data size to have ETH_HLEN"), which in turn depends on upstream commit d5fbcf46ee82 "selftests/bpf: make xdp_cpumap_attach keep redirect prog attached". Latter is part of "selftests/bpf: add coverage for xdp_features in test_progs"[1], and I opt to backport the series entirely since it adds coverage. With these patches the xdp_devmap_attach no longer fails[2].
BPF selftests failure log below for completeness. See [3] for the raw log.
Error: #566 xdp_devmap_attach Error: #566/1 xdp_devmap_attach/DEVMAP with programs in entries test_xdp_with_devmap_helpers:PASS:ip netns add devmap_attach_ns 0 nsec test_xdp_with_devmap_helpers:PASS:open_netns 0 nsec test_xdp_with_devmap_helpers:PASS:ip link set dev lo up 0 nsec test_xdp_with_devmap_helpers:PASS:test_xdp_with_devmap_helpers__open_and_load 0 nsec test_xdp_with_devmap_helpers:PASS:Generic attach of program with 8-byte devmap 0 nsec test_xdp_with_devmap_helpers:PASS:bpf_prog_get_info_by_fd 0 nsec test_xdp_with_devmap_helpers:PASS:Add program to devmap entry 0 nsec test_xdp_with_devmap_helpers:PASS:Read devmap entry 0 nsec test_xdp_with_devmap_helpers:PASS:Match program id to devmap entry prog_id 0 nsec test_xdp_with_devmap_helpers:FAIL:XDP test run unexpected error: -22 (errno 22) test_xdp_with_devmap_helpers:PASS:XDP program detach 0 nsec libbpf: Kernel error message: BPF_XDP_DEVMAP programs can not be attached to a device test_xdp_with_devmap_helpers:PASS:Attach of BPF_XDP_DEVMAP program 0 nsec test_xdp_with_devmap_helpers:PASS:Add non-BPF_XDP_DEVMAP program to devmap entry 0 nsec test_xdp_with_devmap_helpers:PASS:Add BPF_XDP program with frags to devmap entry 0 nsec Error: #566/4 xdp_devmap_attach/DEVMAP with programs in entries on veth test_xdp_with_devmap_helpers_veth:PASS:ip netns add devmap_attach_ns 0 nsec test_xdp_with_devmap_helpers_veth:PASS:open_netns 0 nsec test_xdp_with_devmap_helpers_veth:PASS:ip link add veth_src type veth peer name veth_dst 0 nsec test_xdp_with_devmap_helpers_veth:PASS:ip link set dev veth_src up 0 nsec test_xdp_with_devmap_helpers_veth:PASS:ip link set dev veth_dst up 0 nsec test_xdp_with_devmap_helpers_veth:PASS:val.ifindex 0 nsec test_xdp_with_devmap_helpers_veth:PASS:ifindex_dst 0 nsec test_xdp_with_devmap_helpers_veth:PASS:test_xdp_with_devmap_helpers__open_and_load 0 nsec test_xdp_with_devmap_helpers_veth:PASS:Attach of program with 8-byte devmap 0 nsec test_xdp_with_devmap_helpers_veth:PASS:bpf_prog_get_info_by_fd 0 nsec test_xdp_with_devmap_helpers_veth:PASS:Add program to devmap entry 0 nsec test_xdp_with_devmap_helpers_veth:PASS:Read devmap entry 0 nsec test_xdp_with_devmap_helpers_veth:PASS:Match program id to devmap entry prog_id 0 nsec test_xdp_with_devmap_helpers_veth:PASS:Attach of dummy XDP 0 nsec test_xdp_with_devmap_helpers_veth:FAIL:XDP test run unexpected error: -22 (errno 22) test_xdp_with_devmap_helpers_veth:PASS:XDP program detach 0 nsec test_xdp_with_devmap_helpers_veth:PASS:XDP program detach 0 nsec
1: https://lore.kernel.org/all/20241009-convert_xdp_tests-v3-0-51cea913710c@boo... 2: https://github.com/shunghsiyu/libbpf/actions/runs/14569651139/job/4086442877... 3: https://github.com/shunghsiyu/libbpf/actions/runs/14562221313/job/4084692756...
Alexis Lothoré (eBPF Foundation) (3): selftests/bpf: fix bpf_map_redirect call for cpu map test selftests/bpf: make xdp_cpumap_attach keep redirect prog attached selftests/bpf: check program redirect in xdp_cpumap_attach
Shigeru Yoshida (1): selftests/bpf: Adjust data size to have ETH_HLEN
.../bpf/prog_tests/xdp_cpumap_attach.c | 44 +++++++++++++++---- .../bpf/prog_tests/xdp_devmap_attach.c | 8 ++-- .../bpf/progs/test_xdp_with_cpumap_helpers.c | 7 ++- 3 files changed, 46 insertions(+), 13 deletions(-)