diff options
author | Ingo Molnar <mingo@kernel.org> | 2019-05-13 21:30:15 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2019-05-13 21:30:15 +0300 |
commit | 82045dd85566d87128dcc66277cf1177d9930a4a (patch) | |
tree | 22fea6311a4866293005a1a44f34310e4007a3c9 /net/ipv4/tcp_input.c | |
parent | e0478542cfd4d993e38d5f92a3f3ecd238805e96 (diff) | |
parent | ffa6f55eb6188ee73339cab710fabf30d13110a7 (diff) | |
download | linux-82045dd85566d87128dcc66277cf1177d9930a4a.tar.xz |
Merge branch 'linus' into core/urgent, to merge in dependent changes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r-- | net/ipv4/tcp_input.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 5def3c48870e..731d3045b50a 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -402,11 +402,12 @@ static int __tcp_grow_window(const struct sock *sk, const struct sk_buff *skb) static void tcp_grow_window(struct sock *sk, const struct sk_buff *skb) { struct tcp_sock *tp = tcp_sk(sk); + int room; + + room = min_t(int, tp->window_clamp, tcp_space(sk)) - tp->rcv_ssthresh; /* Check #1 */ - if (tp->rcv_ssthresh < tp->window_clamp && - (int)tp->rcv_ssthresh < tcp_space(sk) && - !tcp_under_memory_pressure(sk)) { + if (room > 0 && !tcp_under_memory_pressure(sk)) { int incr; /* Check #2. Increase window, if skb with such overhead @@ -419,8 +420,7 @@ static void tcp_grow_window(struct sock *sk, const struct sk_buff *skb) if (incr) { incr = max_t(int, incr, 2 * skb->len); - tp->rcv_ssthresh = min(tp->rcv_ssthresh + incr, - tp->window_clamp); + tp->rcv_ssthresh += min(room, incr); inet_csk(sk)->icsk_ack.quick |= 1; } } |