diff options
Diffstat (limited to 'drivers/net/virtio_net.c')
| -rw-r--r-- | drivers/net/virtio_net.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 023725086046..8fadd8eaf601 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1330,7 +1330,7 @@ static int virtnet_receive(struct receive_queue *rq, int budget,  	return stats.packets;  } -static void free_old_xmit_skbs(struct send_queue *sq) +static void free_old_xmit_skbs(struct send_queue *sq, bool in_napi)  {  	struct sk_buff *skb;  	unsigned int len; @@ -1343,7 +1343,7 @@ static void free_old_xmit_skbs(struct send_queue *sq)  		bytes += skb->len;  		packets++; -		dev_consume_skb_any(skb); +		napi_consume_skb(skb, in_napi);  	}  	/* Avoid overhead when no packets have been processed @@ -1369,7 +1369,7 @@ static void virtnet_poll_cleantx(struct receive_queue *rq)  		return;  	if (__netif_tx_trylock(txq)) { -		free_old_xmit_skbs(sq); +		free_old_xmit_skbs(sq, true);  		__netif_tx_unlock(txq);  	} @@ -1445,7 +1445,7 @@ static int virtnet_poll_tx(struct napi_struct *napi, int budget)  	struct netdev_queue *txq = netdev_get_tx_queue(vi->dev, vq2txq(sq->vq));  	__netif_tx_lock(txq, raw_smp_processor_id()); -	free_old_xmit_skbs(sq); +	free_old_xmit_skbs(sq, true);  	__netif_tx_unlock(txq);  	virtqueue_napi_complete(napi, sq->vq, 0); @@ -1514,7 +1514,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev)  	bool use_napi = sq->napi.weight;  	/* Free up any pending old buffers before queueing new ones. */ -	free_old_xmit_skbs(sq); +	free_old_xmit_skbs(sq, false);  	if (use_napi && kick)  		virtqueue_enable_cb_delayed(sq->vq); @@ -1557,7 +1557,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev)  		if (!use_napi &&  		    unlikely(!virtqueue_enable_cb_delayed(sq->vq))) {  			/* More just got used, free them then recheck. */ -			free_old_xmit_skbs(sq); +			free_old_xmit_skbs(sq, false);  			if (sq->vq->num_free >= 2+MAX_SKB_FRAGS) {  				netif_start_subqueue(dev, qnum);  				virtqueue_disable_cb(sq->vq);  | 
