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;
|
|
}
|
|
|