diff options
author | Jason Wang <jasowang@redhat.com> | 2014-02-21 00:08:04 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-03-24 00:38:10 -0400 |
commit | 73c992581e00ea2177e8b885ed0ed314daac64d9 (patch) | |
tree | 4c24009495b5fa3431a37bf11f779206066de36c | |
parent | 913cfa947d296bd0a0671e87f102a49c24683fd8 (diff) |
virtio-net: alloc big buffers also when guest can receive UFO
[ Upstream commit 0e7ede80d929ff0f830c44a543daa1acd590c749 ]
We should alloc big buffers also when guest can receive UFO
packets to let the big packets fit into guest rx buffer.
Fixes 5c5167515d80f78f6bb538492c423adcae31ad65
(virtio-net: Allow UFO feature to be set and advertised.)
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/net/virtio_net.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index a0c05e07feeb..2835bfe151b1 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
@@ -1597,7 +1597,8 @@ static int virtnet_probe(struct virtio_device *vdev) | |||
1597 | /* If we can receive ANY GSO packets, we must allocate large ones. */ | 1597 | /* If we can receive ANY GSO packets, we must allocate large ones. */ |
1598 | if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) || | 1598 | if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) || |
1599 | virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) || | 1599 | virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) || |
1600 | virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN)) | 1600 | virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN) || |
1601 | virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_UFO)) | ||
1601 | vi->big_packets = true; | 1602 | vi->big_packets = true; |
1602 | 1603 | ||
1603 | if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF)) | 1604 | if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF)) |