Enabling skb PP recycling revealed a couple issues in the bpf_test_run code. Recycling broke the assumption that the headroom won't ever be touched during the test_run execution: xdp_scrub_frame() invalidates the XDP frame at the headroom start, while neigh xmit code overwrites 2 bytes to the left of the Ethernet header. The first makes the kernel panic in certain cases, while the second breaks xdp_do_redirect selftest on BE. test_run is a limited-scope entity, so let's hope no more corner cases will happen here or at least they will be as easy and pleasant to fix as those two. Alexander Lobakin (2): bpf, test_run: fix crashes due to XDP frame overwriting/corruption selftests/bpf: fix "metadata marker" getting overwritten by the netstack net/bpf/test_run.c | 12 +++++++++++- .../selftests/bpf/prog_tests/xdp_do_redirect.c | 7 ++++--- .../selftests/bpf/progs/test_xdp_do_redirect.c | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) -- 2.39.2