diff options
Diffstat (limited to 'net/core')
| -rw-r--r-- | net/core/dev.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/net/core/dev.c b/net/core/dev.c index f1129706ce7..e3fe5c70560 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2588,9 +2588,9 @@ static int process_backlog(struct napi_struct *napi, int quota)  		local_irq_disable();  		skb = __skb_dequeue(&queue->input_pkt_queue);  		if (!skb) { -			__napi_complete(napi);  			local_irq_enable(); -			break; +			napi_complete(napi); +			goto out;  		}  		local_irq_enable(); @@ -2599,6 +2599,7 @@ static int process_backlog(struct napi_struct *napi, int quota)  	napi_gro_flush(napi); +out:  	return work;  } @@ -2671,7 +2672,7 @@ void netif_napi_del(struct napi_struct *napi)  	struct sk_buff *skb, *next;  	list_del_init(&napi->dev_list); -	kfree(napi->skb); +	kfree_skb(napi->skb);  	for (skb = napi->gro_list; skb; skb = next) {  		next = skb->next; | 
