diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -2383,7 +2383,11 @@ #endif INP_WLOCK_ASSERT(inp); - MPASS(!callout_active(&tp->t_callout)); + /* only allow TT_2MSL for TIMEWAIT */ + MPASS(!tcp_timer_active(tp, TT_REXMT)); + MPASS(!tcp_timer_active(tp, TT_PERSIST)); + MPASS(!tcp_timer_active(tp, TT_KEEP)); + MPASS(!tcp_timer_active(tp, TT_DELACK)); MPASS(TAILQ_EMPTY(&tp->snd_holes)); /* free the reassembly queue, if any */