udp: exclude gso from xfrm paths
UDP GSO delays final datagram construction to the GSO layer. This
conflicts with protocol transformations.
Fixes: bec1f6f697
("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>
This commit is contained in:
parent
e89e59c08d
commit
ff06342cbc
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue