X-Git-Url: http://pileus.org/git/?p=~andy%2Flinux;a=blobdiff_plain;f=drivers%2Fnet%2Fvirtio_net.c;fp=drivers%2Fnet%2Fvirtio_net.c;h=841b60831df1b2e83c12f55ee5e8fc90874b9475;hp=5632a99cbbd24fdd059c182e5b28d1d19b3ea4e9;hb=49d8137a4039c63c834827f4bfe875e27bb9c521;hpb=bc53267e97e4942e7f22c31cd8cf87840796accb diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 5632a99cbbd..841b60831df 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -671,8 +671,7 @@ static bool try_fill_recv(struct receive_queue *rq, gfp_t gfp) if (err) break; } while (rq->vq->num_free); - if (unlikely(!virtqueue_kick(rq->vq))) - return false; + virtqueue_kick(rq->vq); return !oom; } @@ -877,7 +876,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev) err = xmit_skb(sq, skb); /* This should not happen! */ - if (unlikely(err) || unlikely(!virtqueue_kick(sq->vq))) { + if (unlikely(err)) { dev->stats.tx_fifo_errors++; if (net_ratelimit()) dev_warn(&dev->dev, @@ -886,6 +885,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev) kfree_skb(skb); return NETDEV_TX_OK; } + virtqueue_kick(sq->vq); /* Don't wait up for transmitted skbs to be freed. */ skb_orphan(skb);