Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 269aa759 authored by Neal Cardwell's avatar Neal Cardwell Committed by David S. Miller
Browse files

tcp: fix RTO calculated from cached RTT



Commit 1b7fdd2a ("tcp: do not use cached RTT for RTT estimation")
did not correctly account for the fact that crtt is the RTT shifted
left 3 bits. Fix the calculation to consistently reflect this fact.

Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Acked-by: default avatarEric Dumazet <edumazet@google.com>
Acked-By: default avatarYuchung Cheng <ycheng@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4bdf2597
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -502,7 +502,9 @@ reset:
	 * ACKs, wait for troubles.
	 */
	if (crtt > tp->srtt) {
		inet_csk(sk)->icsk_rto = crtt + max(crtt >> 2, tcp_rto_min(sk));
		/* Set RTO like tcp_rtt_estimator(), but from cached RTT. */
		crtt >>= 3;
		inet_csk(sk)->icsk_rto = crtt + max(2 * crtt, tcp_rto_min(sk));
	} else if (tp->srtt == 0) {
		/* RFC6298: 5.7 We've failed to get a valid RTT sample from
		 * 3WHS. This is most likely due to retransmission,