diff --git a/sys/netinet/tcp_lro.c b/sys/netinet/tcp_lro.c index 9ec7736aef2f..4f7457d875e7 100644 --- a/sys/netinet/tcp_lro.c +++ b/sys/netinet/tcp_lro.c @@ -73,6 +73,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -1359,7 +1360,9 @@ tcp_lro_flush_tcphpts(struct lro_ctrl *lc, struct lro_entry *le) tp = intotcpcb(inp); /* Check if the inp is dead, Jim. */ - if (tp == NULL || (inp->inp_flags & INP_DROPPED)) { + if (tp == NULL || + (inp->inp_flags & INP_DROPPED) || + (tp->t_state == TCPS_TIME_WAIT)) { INP_WUNLOCK(inp); return (TCP_LRO_CANNOT); }