aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r--net/ipv4/tcp_output.c9
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