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
This commit is contained in:
Gleb Smirnoff 2021-12-26 08:48:06 -08:00
parent 40fa3e40b5
commit 17ac6b1c14

View File

@ -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