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.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 3e2c041d76ac..cecfd77c9f3c 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -70,7 +70,8 @@ static const unsigned long guest_offloads[] = {
70 VIRTIO_NET_F_GUEST_TSO4, 70 VIRTIO_NET_F_GUEST_TSO4,
71 VIRTIO_NET_F_GUEST_TSO6, 71 VIRTIO_NET_F_GUEST_TSO6,
72 VIRTIO_NET_F_GUEST_ECN, 72 VIRTIO_NET_F_GUEST_ECN,
73 VIRTIO_NET_F_GUEST_UFO 73 VIRTIO_NET_F_GUEST_UFO,
74 VIRTIO_NET_F_GUEST_CSUM
74}; 75};
75 76
76struct virtnet_stat_desc { 77struct virtnet_stat_desc {
@@ -2334,9 +2335,6 @@ static int virtnet_clear_guest_offloads(struct virtnet_info *vi)
2334 if (!vi->guest_offloads) 2335 if (!vi->guest_offloads)
2335 return 0; 2336 return 0;
2336 2337
2337 if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_CSUM))
2338 offloads = 1ULL << VIRTIO_NET_F_GUEST_CSUM;
2339
2340 return virtnet_set_guest_offloads(vi, offloads); 2338 return virtnet_set_guest_offloads(vi, offloads);
2341} 2339}
2342 2340
@@ -2346,8 +2344,6 @@ static int virtnet_restore_guest_offloads(struct virtnet_info *vi)
2346 2344
2347 if (!vi->guest_offloads) 2345 if (!vi->guest_offloads)
2348 return 0; 2346 return 0;
2349 if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_CSUM))
2350 offloads |= 1ULL << VIRTIO_NET_F_GUEST_CSUM;
2351 2347
2352 return virtnet_set_guest_offloads(vi, offloads); 2348 return virtnet_set_guest_offloads(vi, offloads);
2353} 2349}
@@ -2365,8 +2361,9 @@ static int virtnet_xdp_set(struct net_device *dev, struct bpf_prog *prog,
2365 && (virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO4) || 2361 && (virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO4) ||
2366 virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO6) || 2362 virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO6) ||
2367 virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_ECN) || 2363 virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_ECN) ||
2368 virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_UFO))) { 2364 virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_UFO) ||
2369 NL_SET_ERR_MSG_MOD(extack, "Can't set XDP while host is implementing LRO, disable LRO first"); 2365 virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_CSUM))) {
2366 NL_SET_ERR_MSG_MOD(extack, "Can't set XDP while host is implementing LRO/CSUM, disable LRO/CSUM first");
2370 return -EOPNOTSUPP; 2367 return -EOPNOTSUPP;
2371 } 2368 }
2372 2369