diff options
Diffstat (limited to 'drivers/net/virtio_net.c')
-rw-r--r-- | drivers/net/virtio_net.c | 6 |
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() */ |