aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2021-05-21 00:16:23 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2021-05-28 23:47:31 +0000
commit677cb9722a64d3f944d3e374e0ef1bb0e45644b5 (patch)
tree5c6b872da79fd9629fc3c8d98c48e406de6fae75
parentf949967c8eb3ab5e5a965e3cf07a726dfdc81263 (diff)
downloadsrc-677cb9722a64d3f944d3e374e0ef1bb0e45644b5.tar.gz
src-677cb9722a64d3f944d3e374e0ef1bb0e45644b5.zip
cxgbe tom: Free pending iSCSI mbufs on connection shutdown.
If an iSCSI connection is shutdown abruptly (e.g. by a RST from the peer), pending iSCSI PDUs and page pod work requests can be in the ulp_pduq when the final CPL is received indicating the death of the connection. Reported by: Jithesh Arakkan @ Chelsio
-rw-r--r--sys/dev/cxgbe/tom/t4_tom.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/cxgbe/tom/t4_tom.c b/sys/dev/cxgbe/tom/t4_tom.c
index 97693ab74000..1c9999be339d 100644
--- a/sys/dev/cxgbe/tom/t4_tom.c
+++ b/sys/dev/cxgbe/tom/t4_tom.c
@@ -1024,6 +1024,7 @@ final_cpl_received(struct toepcb *toep)
tls_detach(toep);
toep->inp = NULL;
toep->flags &= ~TPF_CPL_PENDING;
+ mbufq_drain(&toep->ulp_pduq);
mbufq_drain(&toep->ulp_pdu_reclaimq);
if (!(toep->flags & TPF_ATTACHED))