]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: do not delay zero-copy skbs in skb_attempt_defer_free()
authorEric Dumazet <edumazet@google.com>
Mon, 16 Feb 2026 19:36:53 +0000 (19:36 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 18 Feb 2026 01:06:18 +0000 (17:06 -0800)
After the blamed commit, TCP tx zero copy notifications could be
arbitrarily delayed and cause regressions in applications waiting
for them.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Fixes: e20dfbad8aab ("net: fix napi_consume_skb() with alien skbs")
Reviewed-by: Jason Xing <kerneljasonxing@gmail.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20260216193653.627617-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/skbuff.c

index 699c401a5eae9c497a42b6bdd8593af7890529f4..dc47d3efc72ed86dce5e382d505eda7bc863669a 100644 (file)
@@ -7266,10 +7266,15 @@ void skb_attempt_defer_free(struct sk_buff *skb)
 {
        struct skb_defer_node *sdn;
        unsigned long defer_count;
-       int cpu = skb->alloc_cpu;
        unsigned int defer_max;
        bool kick;
+       int cpu;
 
+       /* zero copy notifications should not be delayed. */
+       if (skb_zcopy(skb))
+               goto nodefer;
+
+       cpu = skb->alloc_cpu;
        if (cpu == raw_smp_processor_id() ||
            WARN_ON_ONCE(cpu >= nr_cpu_ids) ||
            !cpu_online(cpu)) {