aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/tcp_input.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index b61274b666f6..e965cc7b87ff 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -1877,8 +1877,13 @@ void tcp_enter_loss(struct sock *sk, int how)
1877 } 1877 }
1878 tcp_verify_left_out(tp); 1878 tcp_verify_left_out(tp);
1879 1879
1880 tp->reordering = min_t(unsigned int, tp->reordering, 1880 /* Timeout in disordered state after receiving substantial DUPACKs
1881 sysctl_tcp_reordering); 1881 * suggests that the degree of reordering is over-estimated.
1882 */
1883 if (icsk->icsk_ca_state <= TCP_CA_Disorder &&
1884 tp->sacked_out >= sysctl_tcp_reordering)
1885 tp->reordering = min_t(unsigned int, tp->reordering,
1886 sysctl_tcp_reordering);
1882 tcp_set_ca_state(sk, TCP_CA_Loss); 1887 tcp_set_ca_state(sk, TCP_CA_Loss);
1883 tp->high_seq = tp->snd_nxt; 1888 tp->high_seq = tp->snd_nxt;
1884 TCP_ECN_queue_cwr(tp); 1889 TCP_ECN_queue_cwr(tp);