diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h index 3e2ee7739c11a1f448962eefac876b55282e0bf0..a7c197299fc72a5645e16b2632e3917d478995dc 100644 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h @@ -10,6 +10,9 @@ static inline int virtio_net_hdr_set_proto(struct sk_buff *skb, const struct virtio_net_hdr *hdr) { + if (skb->protocol) + return 0; + switch (hdr->gso_type & ~VIRTIO_NET_HDR_GSO_ECN) { case VIRTIO_NET_HDR_GSO_TCPV4: case VIRTIO_NET_HDR_GSO_UDP: