diff options
Diffstat (limited to 'drivers/net/virtio_net.c')
-rw-r--r-- | drivers/net/virtio_net.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index d75f8edf4fb3..841b60831df1 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) | |||
671 | if (err) | 671 | if (err) |
672 | break; | 672 | break; |
673 | } while (rq->vq->num_free); | 673 | } while (rq->vq->num_free); |
674 | if (unlikely(!virtqueue_kick(rq->vq))) | 674 | virtqueue_kick(rq->vq); |
675 | return false; | ||
676 | return !oom; | 675 | return !oom; |
677 | } | 676 | } |
678 | 677 | ||
@@ -877,7 +876,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
877 | err = xmit_skb(sq, skb); | 876 | err = xmit_skb(sq, skb); |
878 | 877 | ||
879 | /* This should not happen! */ | 878 | /* This should not happen! */ |
880 | if (unlikely(err) || unlikely(!virtqueue_kick(sq->vq))) { | 879 | if (unlikely(err)) { |
881 | dev->stats.tx_fifo_errors++; | 880 | dev->stats.tx_fifo_errors++; |
882 | if (net_ratelimit()) | 881 | if (net_ratelimit()) |
883 | dev_warn(&dev->dev, | 882 | dev_warn(&dev->dev, |
@@ -886,6 +885,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
886 | kfree_skb(skb); | 885 | kfree_skb(skb); |
887 | return NETDEV_TX_OK; | 886 | return NETDEV_TX_OK; |
888 | } | 887 | } |
888 | virtqueue_kick(sq->vq); | ||
889 | 889 | ||
890 | /* Don't wait up for transmitted skbs to be freed. */ | 890 | /* Don't wait up for transmitted skbs to be freed. */ |
891 | skb_orphan(skb); | 891 | skb_orphan(skb); |
@@ -1711,7 +1711,8 @@ static int virtnet_probe(struct virtio_device *vdev) | |||
1711 | /* If we can receive ANY GSO packets, we must allocate large ones. */ | 1711 | /* If we can receive ANY GSO packets, we must allocate large ones. */ |
1712 | if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) || | 1712 | if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) || |
1713 | virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) || | 1713 | virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) || |
1714 | virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN)) | 1714 | virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN) || |
1715 | virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_UFO)) | ||
1715 | vi->big_packets = true; | 1716 | vi->big_packets = true; |
1716 | 1717 | ||
1717 | if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF)) | 1718 | if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF)) |