diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 4e73ab3482b8..1bffbcbe6087 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -999,10 +999,10 @@ kfree_skb_list_reason(struct sk_buff *segs, enum skb_drop_reason reason) while (segs) { struct sk_buff *next = segs->next; - skb_mark_not_on_list(segs); - - if (__kfree_skb_reason(segs, reason)) + if (__kfree_skb_reason(segs, reason)) { + skb_mark_not_on_list(segs); kfree_skb_add_bulk(segs, &sa, reason); + } segs = next; }