aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCheng Cui <cc@FreeBSD.org>2023-05-25 13:14:38 +0000
committerCheng Cui <cc@FreeBSD.org>2023-05-26 06:30:52 +0000
commitf5abdb03119a7e6608f0cfee0e7a28c94b9b0ca1 (patch)
tree8dfcbe8f0ade74e394b162dcec57a0d551eb40cc
parente4a905d1e0d94ddb8e15de50d37e67f13e058047 (diff)
downloadsrc-f5abdb03119a7e6608f0cfee0e7a28c94b9b0ca1.tar.gz
src-f5abdb03119a7e6608f0cfee0e7a28c94b9b0ca1.zip
tcp: fix a bug where unshifting should be put last in tcp_get_srtt()
Reported by: Bhaskar Pardeshi from VMware. Reviewers: rscheff, tuexen, #transport! Approved by: tuexen (mentor) Subscribers: imp, melifaro, glebius Differential Revision: https://reviews.freebsd.org/D40267
-rw-r--r--sys/netinet/tcp_subr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
index 8636ff4cefeb..52222d7c1634 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -4660,8 +4660,9 @@ tcp_get_srtt(struct tcpcb *tp, int granularity)
/*
* The user wants useconds and internally
* its kept in ticks, convert to useconds.
+ * Put unshift at last improves precision.
*/
- srtt = TICKS_2_USEC(srtt);
+ srtt = TICKS_2_USEC(tp->t_srtt) >> TCP_RTT_SHIFT;
} else if (granularity == TCP_TMR_GRANULARITY_TICKS) {
/*
* The user wants ticks and internally its