diff --git a/net/core/dev.c b/net/core/dev.c index 5c8c0a572ee9c87b1e6019f580aba45764660ef8..d47554307a6d6a7dbbb43f18c8d344abadcb7374 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4959,8 +4959,10 @@ static inline void __netif_receive_skb_list_ptype(struct list_head *head, if (pt_prev->list_func != NULL) pt_prev->list_func(head, pt_prev, orig_dev); else - list_for_each_entry_safe(skb, next, head, list) + list_for_each_entry_safe(skb, next, head, list) { + skb_list_del_init(skb); pt_prev->func(skb, skb->dev, pt_prev, orig_dev); + } } static void __netif_receive_skb_list_core(struct list_head *head, bool pfmemalloc)