diff options
Diffstat (limited to 'net/ipv4/tcp_recovery.c')
-rw-r--r-- | net/ipv4/tcp_recovery.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/tcp_recovery.c b/net/ipv4/tcp_recovery.c index d3ea89020c69..3143664902e9 100644 --- a/net/ipv4/tcp_recovery.c +++ b/net/ipv4/tcp_recovery.c | |||
@@ -55,7 +55,8 @@ static void tcp_rack_detect_loss(struct sock *sk, u32 *reo_timeout) | |||
55 | * to queuing or delayed ACKs. | 55 | * to queuing or delayed ACKs. |
56 | */ | 56 | */ |
57 | reo_wnd = 1000; | 57 | reo_wnd = 1000; |
58 | if ((tp->rack.reord || !tp->lost_out) && min_rtt != ~0U) { | 58 | if ((tp->rack.reord || inet_csk(sk)->icsk_ca_state < TCP_CA_Recovery) && |
59 | min_rtt != ~0U) { | ||
59 | reo_wnd = max((min_rtt >> 2) * tp->rack.reo_wnd_steps, reo_wnd); | 60 | reo_wnd = max((min_rtt >> 2) * tp->rack.reo_wnd_steps, reo_wnd); |
60 | reo_wnd = min(reo_wnd, tp->srtt_us >> 3); | 61 | reo_wnd = min(reo_wnd, tp->srtt_us >> 3); |
61 | } | 62 | } |