|
@@ -1366,7 +1366,7 @@ emsgsize:
|
|
if (((length > mtu) ||
|
|
if (((length > mtu) ||
|
|
(skb && skb_is_gso(skb))) &&
|
|
(skb && skb_is_gso(skb))) &&
|
|
(sk->sk_protocol == IPPROTO_UDP) &&
|
|
(sk->sk_protocol == IPPROTO_UDP) &&
|
|
- (rt->dst.dev->features & NETIF_F_UFO) &&
|
|
|
|
|
|
+ (rt->dst.dev->features & NETIF_F_UFO) && !rt->dst.header_len &&
|
|
(sk->sk_type == SOCK_DGRAM) && !udp_get_no_check6_tx(sk)) {
|
|
(sk->sk_type == SOCK_DGRAM) && !udp_get_no_check6_tx(sk)) {
|
|
err = ip6_ufo_append_data(sk, queue, getfrag, from, length,
|
|
err = ip6_ufo_append_data(sk, queue, getfrag, from, length,
|
|
hh_len, fragheaderlen, exthdrlen,
|
|
hh_len, fragheaderlen, exthdrlen,
|