diff options
author | Willem de Bruijn <willemb@google.com> | 2018-05-22 18:34:39 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-05-23 21:48:44 +0300 |
commit | ff06342cbca0ec2c0d5da8685d2691e2d0e9764a (patch) | |
tree | caf80215af338031f807e099685cd9369ad22343 /net/ipv6 | |
parent | e89e59c08d1bc736c8f593d7bad0706b20e73f30 (diff) | |
download | linux-ff06342cbca0ec2c0d5da8685d2691e2d0e9764a.tar.xz |
udp: exclude gso from xfrm paths
UDP GSO delays final datagram construction to the GSO layer. This
conflicts with protocol transformations.
Fixes: bec1f6f69736 ("udp: generate gso with UDP_SEGMENT")
CC: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/udp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 2839c1bd1e58..426c9d2b418d 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -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; |