git: 17ac6b1c1407 - main - bbr: drop packet synchronously in ctf_do_dropwithreset_conn()

From: Gleb Smirnoff <glebius_at_FreeBSD.org>
Date: Sun, 26 Dec 2021 16:49:29 UTC
The branch main has been updated by glebius:

URL: https://cgit.FreeBSD.org/src/commit/?id=17ac6b1c1407c7ca6a99c632416378a563b2c366

commit 17ac6b1c1407c7ca6a99c632416378a563b2c366
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2021-12-26 16:48:06 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2021-12-26 16:48:06 +0000

    bbr: drop packet synchronously in ctf_do_dropwithreset_conn()
    
    This function is always called from tcp_do_segment() method, that
    can drop tcpcb and return unlocked.
    
    Reviewed by:            rrs, tuexen
    Differential revision:  https://reviews.freebsd.org/D33367
---
 sys/netinet/tcp_stacks/rack_bbr_common.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/sys/netinet/tcp_stacks/rack_bbr_common.c b/sys/netinet/tcp_stacks/rack_bbr_common.c
index 42225dfced2f..1be426927073 100644
--- a/sys/netinet/tcp_stacks/rack_bbr_common.c
+++ b/sys/netinet/tcp_stacks/rack_bbr_common.c
@@ -969,11 +969,10 @@ ctf_do_dropwithreset_conn(struct mbuf *m, struct tcpcb *tp, struct tcphdr *th,
     int32_t rstreason, int32_t tlen)
 {
 
-	if (tp->t_inpcb) {
-		tcp_set_inp_to_drop(tp->t_inpcb, ETIMEDOUT);
-	}
 	tcp_dropwithreset(m, th, tp, tlen, rstreason);
-	INP_WUNLOCK(tp->t_inpcb);
+	tp = tcp_drop(tp, ETIMEDOUT);
+	if (tp)
+		INP_WUNLOCK(tp->t_inpcb);
 }
 
 uint32_t