summaryrefslogtreecommitdiffstats
path: root/drivers/net/virtio_net.c
diff options
context:
space:
mode:
authorThomas Huth2013-08-27 17:09:02 +0200
committerDavid S. Miller2013-09-04 03:36:41 +0200
commit4f49129be6fa9b41d1b406ed911da07ce15a7ea5 (patch)
tree9978f27521862f029734293881f0f3715d9270c3 /drivers/net/virtio_net.c
parentMerge branch 'addr_assign_type' (diff)
downloadkernel-qcow2-linux-4f49129be6fa9b41d1b406ed911da07ce15a7ea5.tar.gz
kernel-qcow2-linux-4f49129be6fa9b41d1b406ed911da07ce15a7ea5.tar.xz
kernel-qcow2-linux-4f49129be6fa9b41d1b406ed911da07ce15a7ea5.zip
virtio-net: Set RXCSUM feature if GUEST_CSUM is available
If the VIRTIO_NET_F_GUEST_CSUM virtio feature is available, the guest does not have to calculate the checksums on all received packets. This is pretty much the same feature as RX checksum offloading on real network cards, so the virtio-net driver should report this by setting the NETIF_F_RXCSUM flag. When the user now runs "ethtool -k", he or she can see whether the virtio-net interface has to calculate RX checksums or not. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com> Acked-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/virtio_net.c')
-rw-r--r--drivers/net/virtio_net.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index f21600277583..defec2b3c5a4 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -1538,6 +1538,8 @@ static int virtnet_probe(struct virtio_device *vdev)
dev->features |= dev->hw_features & (NETIF_F_ALL_TSO|NETIF_F_UFO);
/* (!csum && gso) case will be fixed by register_netdev() */
}
+ if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_CSUM))
+ dev->features |= NETIF_F_RXCSUM;
dev->vlan_features = dev->features;