diff options
author | Cheng Cui <cc@FreeBSD.org> | 2023-05-25 13:14:38 +0000 |
---|---|---|
committer | Cheng Cui <cc@FreeBSD.org> | 2023-05-26 06:30:52 +0000 |
commit | f5abdb03119a7e6608f0cfee0e7a28c94b9b0ca1 (patch) | |
tree | 8dfcbe8f0ade74e394b162dcec57a0d551eb40cc | |
parent | e4a905d1e0d94ddb8e15de50d37e67f13e058047 (diff) | |
download | src-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.c | 3 |
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 |