mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			25 lines
		
	
	
		
			664 B
		
	
	
	
		
			Diff
		
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			664 B
		
	
	
	
		
			Diff
		
	
	
| --- linux-4.9.37/net/ipv4/tcp_output.c	2017-07-12 16:42:41.000000000 +0300
 | |
| +++ linux-4.9.y/net/ipv4/tcp_output.c	2021-06-07 13:01:34.000000000 +0300
 | |
| @@ -1170,6 +1170,11 @@
 | |
|  	if (nsize < 0)
 | |
|  		nsize = 0;
 | |
|  
 | |
| +	if (unlikely((sk->sk_wmem_queued >> 1) > sk->sk_sndbuf)) {
 | |
| +		NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPWQUEUETOOBIG);
 | |
| +		return -ENOMEM;
 | |
| +	}
 | |
| +
 | |
|  	if (skb_unclone(skb, gfp))
 | |
|  		return -ENOMEM;
 | |
|  
 | |
| @@ -1340,8 +1345,7 @@
 | |
|  	mss_now -= icsk->icsk_ext_hdr_len;
 | |
|  
 | |
|  	/* Then reserve room for full set of TCP options and 8 bytes of data */
 | |
| -	if (mss_now < 48)
 | |
| -		mss_now = 48;
 | |
| +	mss_now = max(mss_now, sock_net(sk)->ipv4.sysctl_tcp_min_snd_mss);
 | |
|  	return mss_now;
 | |
|  }
 | |
|  
 |