git: 994f9c9e3c2c - stable/14 - tcp rack: fix sending
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 17 Apr 2024 14:19:44 UTC
The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=994f9c9e3c2cafc2182703c4a43580a2bd390f30 commit 994f9c9e3c2cafc2182703c4a43580a2bd390f30 Author: Michael Tuexen <tuexen@FreeBSD.org> AuthorDate: 2024-04-05 15:47:03 +0000 Commit: Michael Tuexen <tuexen@FreeBSD.org> CommitDate: 2024-04-17 14:19:20 +0000 tcp rack: fix sending In rack_output(), idle is used as a boolean variable. So don't use it as an int and don't clear it afterwards. This avoids setting idle to false, when it is not intended. Reported by: olivier Reviewed by: rrs, rscheff Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D44610 (cherry picked from commit 7df0ef5f48e1c67b3f1df7c7964bfa59bc56f4e4) --- sys/netinet/tcp_stacks/rack.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c index fa3cd2f4f698..889622b7ff90 100644 --- a/sys/netinet/tcp_stacks/rack.c +++ b/sys/netinet/tcp_stacks/rack.c @@ -19927,6 +19927,7 @@ rack_output(struct tcpcb *tp) #endif int32_t idle, sendalot; + uint32_t tot_idle; int32_t sub_from_prr = 0; volatile int32_t sack_rxmit; struct rack_sendmap *rsm = NULL; @@ -20164,8 +20165,8 @@ rack_output(struct tcpcb *tp) if ((tp->snd_una == tp->snd_max) && rack->r_ctl.rc_went_idle_time && TSTMP_GT(cts, rack->r_ctl.rc_went_idle_time)) { - idle = cts - rack->r_ctl.rc_went_idle_time; - if (idle > rack_min_probertt_hold) { + tot_idle = (cts - rack->r_ctl.rc_went_idle_time); + if (tot_idle > rack_min_probertt_hold) { /* Count as a probe rtt */ if (rack->in_probe_rtt == 0) { rack->r_ctl.rc_lower_rtt_us_cts = cts; @@ -20176,7 +20177,6 @@ rack_output(struct tcpcb *tp) rack_exit_probertt(rack, cts); } } - idle = 0; } if (rack_use_fsb && (rack->r_ctl.fsb.tcp_ip_hdr) &&