net: Properly unlink GRO packets on overflow.
authorDavid S. Miller <davem@davemloft.net>
Sun, 28 Oct 2018 17:35:12 +0000 (10:35 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 28 Oct 2018 17:35:12 +0000 (10:35 -0700)
Just like with normal GRO processing, we have to initialize
skb->next to NULL when we unlink overflow packets from the
GRO hash lists.

Fixes: d4546c2509b1 ("net: Convert GRO SKB handling to list_head.")
Reported-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c

index 022ad73d62538036c828ebfa78531cb3a76a2f0d..77d43ae2a7bbe1267f8430d5c35637d1984f463c 100644 (file)
@@ -5457,7 +5457,7 @@ static void gro_flush_oldest(struct list_head *head)
        /* Do not adjust napi->gro_hash[].count, caller is adding a new
         * SKB to the chain.
         */
        /* Do not adjust napi->gro_hash[].count, caller is adding a new
         * SKB to the chain.
         */
-       list_del(&oldest->list);
+       skb_list_del_init(oldest);
        napi_gro_complete(oldest);
 }
 
        napi_gro_complete(oldest);
 }