> diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h > index 5209b5e..32fb046 100644 > --- a/include/linux/virtio_net.h > +++ b/include/linux/virtio_net.h > @@ -18,9 +18,6 @@ static inline int virtio_net_hdr_to_skb(struct sk_buff *skb, > case VIRTIO_NET_HDR_GSO_TCPV6: > gso_type = SKB_GSO_TCPV6; > break; > - case VIRTIO_NET_HDR_GSO_UDP: > - gso_type = SKB_GSO_UDP; > - break;
Virtio devices negotiate feature support before using this, but tuntap and pf_packet may be passing these packets unconditionally. Perhaps we should fragment those on the spot with skb_segment. > --- a/net/ipv4/udp_offload.c > +++ b/net/ipv4/udp_offload.c > @@ -21,7 +21,7 @@ static struct sk_buff *__skb_udp_tunnel_segment(struct > sk_buff *skb, > __be16 new_protocol, bool is_ipv6) In this file, can now remove all of udp4_ufo_fragment, and udp6_ufo_fragment in net/ipv6.