diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r-- | net/ipv4/tcp_output.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index a4d214c7b506..04be9f833927 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -2414,15 +2414,12 @@ bool tcp_schedule_loss_probe(struct sock *sk, bool advancing_rto) | |||
2414 | 2414 | ||
2415 | early_retrans = sock_net(sk)->ipv4.sysctl_tcp_early_retrans; | 2415 | early_retrans = sock_net(sk)->ipv4.sysctl_tcp_early_retrans; |
2416 | /* Schedule a loss probe in 2*RTT for SACK capable connections | 2416 | /* Schedule a loss probe in 2*RTT for SACK capable connections |
2417 | * in Open state, that are either limited by cwnd or application. | 2417 | * not in loss recovery, that are either limited by cwnd or application. |
2418 | */ | 2418 | */ |
2419 | if ((early_retrans != 3 && early_retrans != 4) || | 2419 | if ((early_retrans != 3 && early_retrans != 4) || |
2420 | !tp->packets_out || !tcp_is_sack(tp) || | 2420 | !tp->packets_out || !tcp_is_sack(tp) || |
2421 | icsk->icsk_ca_state != TCP_CA_Open) | 2421 | (icsk->icsk_ca_state != TCP_CA_Open && |
2422 | return false; | 2422 | icsk->icsk_ca_state != TCP_CA_CWR)) |
2423 | |||
2424 | if ((tp->snd_cwnd > tcp_packets_in_flight(tp)) && | ||
2425 | !tcp_write_queue_empty(sk)) | ||
2426 | return false; | 2423 | return false; |
2427 | 2424 | ||
2428 | /* Probe timeout is 2*rtt. Add minimum RTO to account | 2425 | /* Probe timeout is 2*rtt. Add minimum RTO to account |