diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 4b7e756181c9ec96eea6b0f5397aec3c87008a5a..c635de52526c9ddcd155cbf12d87b315a116c80f 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -215,10 +215,12 @@ static void zap_completion_queue(void) while (clist != NULL) { struct sk_buff *skb = clist; clist = clist->next; - if (skb->destructor) + if (skb->destructor) { + atomic_inc(&skb->users); dev_kfree_skb_any(skb); /* put this one back */ - else + } else { __kfree_skb(skb); + } } }