Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ff06342c authored by Willem de Bruijn's avatar Willem de Bruijn Committed by David S. Miller
Browse files

udp: exclude gso from xfrm paths



UDP GSO delays final datagram construction to the GSO layer. This
conflicts with protocol transformations.

Fixes: bec1f6f6 ("udp: generate gso with UDP_SEGMENT")
CC: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: default avatarWillem de Bruijn <willemb@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e89e59c0
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -788,7 +788,8 @@ static int udp_send_skb(struct sk_buff *skb, struct flowi4 *fl4,
			return -EINVAL;
		if (sk->sk_no_check_tx)
			return -EINVAL;
		if (skb->ip_summed != CHECKSUM_PARTIAL || is_udplite)
		if (skb->ip_summed != CHECKSUM_PARTIAL || is_udplite ||
		    dst_xfrm(skb_dst(skb)))
			return -EIO;

		skb_shinfo(skb)->gso_size = cork->gso_size;
+2 −1
Original line number Diff line number Diff line
@@ -1053,7 +1053,8 @@ static int udp_v6_send_skb(struct sk_buff *skb, struct flowi6 *fl6,
			return -EINVAL;
		if (udp_sk(sk)->no_check6_tx)
			return -EINVAL;
		if (skb->ip_summed != CHECKSUM_PARTIAL || is_udplite)
		if (skb->ip_summed != CHECKSUM_PARTIAL || is_udplite ||
		    dst_xfrm(skb_dst(skb)))
			return -EIO;

		skb_shinfo(skb)->gso_size = cork->gso_size;