cpu_map_bpf_prog_run_xdp() does not handle XDP_ABORTED, causing it to fall through to the default case which calls bpf_warn_invalid_xdp_action(). XDP_ABORTED is a valid action that signals an exception in the BPF program — it should fire trace_xdp_exception() and drop the frame without a spurious warning. The SKB path in the same file (cpu_map_bpf_prog_run_skb) and devmap's dev_map_bpf_prog_run() both handle XDP_ABORTED correctly. Add the missing case to match. Signed-off-by: Anand Kumar Shaw --- kernel/bpf/cpumap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/bpf/cpumap.c b/kernel/bpf/cpumap.c index 04171fbc3..b1fe83eeb 100644 --- a/kernel/bpf/cpumap.c +++ b/kernel/bpf/cpumap.c @@ -223,6 +223,9 @@ static int cpu_map_bpf_prog_run_xdp(struct bpf_cpu_map_entry *rcpu, default: bpf_warn_invalid_xdp_action(NULL, rcpu->prog, act); fallthrough; + case XDP_ABORTED: + trace_xdp_exception(xdpf->dev_rx, rcpu->prog, act); + fallthrough; case XDP_DROP: xdp_return_frame(xdpf); stats->drop++; -- 2.39.5 (Apple Git-154)