diff options
Diffstat (limited to 'net/ipv4/ip_output.c')
| -rw-r--r-- | net/ipv4/ip_output.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 7a3fd25e8913..532b36e9ce2a 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -964,7 +964,8 @@ static int __ip_append_data(struct sock *sk,  		csummode = CHECKSUM_PARTIAL;  	cork->length += length; -	if ((((length + fragheaderlen) > mtu) || (skb && skb_is_gso(skb))) && +	if ((((length + (skb ? skb->len : fragheaderlen)) > mtu) || +	     (skb && skb_is_gso(skb))) &&  	    (sk->sk_protocol == IPPROTO_UDP) &&  	    (rt->dst.dev->features & NETIF_F_UFO) && !dst_xfrm(&rt->dst) &&  	    (sk->sk_type == SOCK_DGRAM) && !sk->sk_no_check_tx) {  | 
