[PATCH bpf 0/2] Fix partial copy of non-linear skb test_run output

From: Sun Jian

Date: Mon Jun 15 2026 - 03:39:55 EST


This series fixes BPF_PROG_TEST_RUN copy-out handling for non-linear skbs
when userspace provides a short data_out buffer.

Patch 1 fixes bpf_test_finish() to compute the skb linear head copy length
from the skb layout instead of deriving it from the clamped copy size.

Patch 2 adds a selftest covering a non-linear skb with a short data_out
buffer. The test checks that test_run returns -ENOSPC, reports the full
packet length through data_size_out, and copies the packet prefix into
data_out.

Tested with:

./test_progs -t skb_load_bytes
Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED

./test_progs -t skb_load_bytes -v
test_nonlinear_data_out_partial:PASS:nonlinear_partial_err
test_nonlinear_data_out_partial:PASS:nonlinear_partial_data_size_out
test_nonlinear_data_out_partial:PASS:nonlinear_partial_data_out
Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED

./test_progs -t skb
Summary: 14/92 PASSED, 0 SKIPPED, 0 FAILED

Sun Jian (2):
bpf: Fix partial copy of non-linear skb test_run output
selftests/bpf: Cover partial copy of non-linear skb test_run output

net/bpf/test_run.c | 11 +++---
.../selftests/bpf/prog_tests/skb_load_bytes.c | 35 +++++++++++++++++++
2 files changed, 39 insertions(+), 7 deletions(-)

--
2.43.0