Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Jun 2025 12:15:52 GMT
From:      Randall Stewart <rrs@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 359f590b2901 - main - Fix a warning in the rack stack.
Message-ID:  <202506181215.55ICFqpr053841@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by rrs:

URL: https://cgit.FreeBSD.org/src/commit/?id=359f590b2901b9ee263c2b72c26b56bcc2f33ae0

commit 359f590b2901b9ee263c2b72c26b56bcc2f33ae0
Author:     Randall Stewart <rrs@FreeBSD.org>
AuthorDate: 2025-06-18 12:14:51 +0000
Commit:     Randall Stewart <rrs@FreeBSD.org>
CommitDate: 2025-06-18 12:14:51 +0000

    Fix a warning in the rack stack.
    
    There is an initialization warning where error may not be set when logging
    extended BBlogs. Lets fix this so error is init'd to zero so we won't have
    a warning.
---
 sys/netinet/tcp_stacks/rack.c | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
index 0388d73098a0..aef05f691e1d 100644
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -621,7 +621,7 @@ rack_swap_beta_values(struct tcp_rack *rack, uint8_t flex8)
 	struct tcpcb *tp;
 	uint32_t old_beta;
 	uint32_t old_beta_ecn;
-	int error, failed = 0;
+	int error = 0, failed = 0;
 
 	tp = rack->rc_tp;
 	if (tp->t_cc == NULL) {
@@ -8032,6 +8032,7 @@ skip_time_check:
 		ret = rack_timeout_rack(tp, rack, cts);
 	} else if (timers & PACE_TMR_TLP) {
 		rack->r_ctl.rc_tlp_rxt_last_time = cts;
+		rack->r_fast_output = 0;
 		ret = rack_timeout_tlp(tp, rack, cts, doing_tlp);
 	} else if (timers & PACE_TMR_RXT) {
 		rack->r_ctl.rc_tlp_rxt_last_time = cts;
@@ -20888,6 +20889,7 @@ just_return_nolock:
 			    rack->r_fsb_inited &&
 			    TCPS_HAVEESTABLISHED(tp->t_state) &&
 			    ((IN_RECOVERY(tp->t_flags)) == 0) &&
+			    (doing_tlp == 0) &&
 			    (rack->r_must_retran == 0) &&
 			    ((tp->t_flags & TF_NEEDFIN) == 0) &&
 			    (len > 0) && (orig_len > 0) &&
@@ -21381,7 +21383,8 @@ send:
 				if (max_len <= 0) {
 					len = 0;
 				} else if (len > max_len) {
-					sendalot = 1;
+					if (doing_tlp == 0)
+						sendalot = 1;
 					len = max_len;
 					mark = 2;
 				}
@@ -22078,6 +22081,8 @@ out:
 	 * In transmit state, time the transmission and arrange for the
 	 * retransmit.  In persist state, just set snd_max.
 	 */
+	if ((rsm == NULL) &&  doing_tlp)
+		add_flag |= RACK_TLP;
 	rack_log_output(tp, &to, len, rack_seq, (uint8_t) flags, error,
 			rack_to_usec_ts(&tv),
 			rsm, add_flag, s_mb, s_moff, hw_tls, segsiz);
@@ -22164,15 +22169,14 @@ out:
 			rack->r_ctl.rc_prr_sndcnt = 0;
 	}
 	sub_from_prr = 0;
-	if (doing_tlp) {
-		/* Make sure the TLP is added */
-		add_flag |= RACK_TLP;
-	} else if (rsm) {
-		/* If its a resend without TLP then it must not have the flag */
-		rsm->r_flags &= ~RACK_TLP;
-	}
-
-
+	if (rsm != NULL) {
+		if (doing_tlp)
+			/* Make sure the TLP is added */
+			rsm->r_flags |= RACK_TLP;
+		else
+			/* If its a resend without TLP then it must not have the flag */
+			rsm->r_flags &= ~RACK_TLP;
+ 	}
 	if ((error == 0) &&
 	    (len > 0) &&
 	    (tp->snd_una == tp->snd_max))
@@ -22510,6 +22514,7 @@ enobufs:
 		    ((flags & (TH_SYN|TH_FIN)) == 0) &&
 		    (rsm == NULL) &&
 		    (ipoptlen == 0) &&
+		    (doing_tlp == 0) &&
 		    rack->r_fsb_inited &&
 		    TCPS_HAVEESTABLISHED(tp->t_state) &&
 		    ((IN_RECOVERY(tp->t_flags)) == 0) &&
@@ -22536,6 +22541,7 @@ enobufs:
 		    rack_use_rfo &&
 		    ((flags & (TH_SYN|TH_FIN)) == 0) &&
 		    (rsm == NULL) &&
+		    (doing_tlp == 0) &&
 		    (ipoptlen == 0) &&
 		    (rack->r_must_retran == 0) &&
 		    rack->r_fsb_inited &&



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202506181215.55ICFqpr053841>