aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/virtio_net.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/virtio_net.c')
-rw-r--r--drivers/net/virtio_net.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 059fdf1bf5ee..110a2cf67244 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -918,6 +918,9 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev)
918 /* Free up any pending old buffers before queueing new ones. */ 918 /* Free up any pending old buffers before queueing new ones. */
919 free_old_xmit_skbs(sq); 919 free_old_xmit_skbs(sq);
920 920
921 /* timestamp packet in software */
922 skb_tx_timestamp(skb);
923
921 /* Try to transmit */ 924 /* Try to transmit */
922 err = xmit_skb(sq, skb); 925 err = xmit_skb(sq, skb);
923 926
@@ -1369,6 +1372,7 @@ static const struct ethtool_ops virtnet_ethtool_ops = {
1369 .get_ringparam = virtnet_get_ringparam, 1372 .get_ringparam = virtnet_get_ringparam,
1370 .set_channels = virtnet_set_channels, 1373 .set_channels = virtnet_set_channels,
1371 .get_channels = virtnet_get_channels, 1374 .get_channels = virtnet_get_channels,
1375 .get_ts_info = ethtool_op_get_ts_info,
1372}; 1376};
1373 1377
1374#define MIN_MTU 68 1378#define MIN_MTU 68
@@ -1754,6 +1758,8 @@ static int virtnet_probe(struct virtio_device *vdev)
1754 if (virtio_has_feature(vdev, VIRTIO_NET_F_HOST_UFO)) 1758 if (virtio_has_feature(vdev, VIRTIO_NET_F_HOST_UFO))
1755 dev->hw_features |= NETIF_F_UFO; 1759 dev->hw_features |= NETIF_F_UFO;
1756 1760
1761 dev->features |= NETIF_F_GSO_ROBUST;
1762
1757 if (gso) 1763 if (gso)
1758 dev->features |= dev->hw_features & (NETIF_F_ALL_TSO|NETIF_F_UFO); 1764 dev->features |= dev->hw_features & (NETIF_F_ALL_TSO|NETIF_F_UFO);
1759 /* (!csum && gso) case will be fixed by register_netdev() */ 1765 /* (!csum && gso) case will be fixed by register_netdev() */