svn commit: r329572 - projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp
Hans Petter Selasky
hselasky at FreeBSD.org
Mon Feb 19 12:38:41 UTC 2018
Author: hselasky
Date: Mon Feb 19 12:38:40 2018
New Revision: 329572
URL: https://svnweb.freebsd.org/changeset/base/329572
Log:
MFC r303513:
sdp: Destroy the RDMA ID after destroying the connection's queue pair.
This is the ordering documented by rdma_destroy_qp(). Also add a useful
KASSERT to sdp_pcbfree().
Sponsored by: EMC / Isilon Storage Division
Modified:
projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
Directory Properties:
projects/bsd_rdma_4_9_stable_11/ (props changed)
Modified: projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
==============================================================================
--- projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c Mon Feb 19 12:37:07 2018 (r329571)
+++ projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c Mon Feb 19 12:38:40 2018 (r329572)
@@ -160,7 +160,10 @@ sdp_pcbbind(struct sdp_sock *ssk, struct sockaddr *nam
static void
sdp_pcbfree(struct sdp_sock *ssk)
{
+
KASSERT(ssk->socket == NULL, ("ssk %p socket still attached", ssk));
+ KASSERT((ssk->flags & SDP_DESTROY) == 0,
+ ("ssk %p already destroyed", ssk));
sdp_dbg(ssk->socket, "Freeing pcb");
SDP_WLOCK_ASSERT(ssk);
@@ -171,7 +174,6 @@ sdp_pcbfree(struct sdp_sock *ssk)
LIST_REMOVE(ssk, list);
SDP_LIST_WUNLOCK();
crfree(ssk->cred);
- sdp_destroy_cma(ssk);
ssk->qp_active = 0;
if (ssk->qp) {
ib_destroy_qp(ssk->qp);
@@ -179,6 +181,7 @@ sdp_pcbfree(struct sdp_sock *ssk)
}
sdp_tx_ring_destroy(ssk);
sdp_rx_ring_destroy(ssk);
+ sdp_destroy_cma(ssk);
rw_destroy(&ssk->rx_ring.destroyed_lock);
rw_destroy(&ssk->lock);
uma_zfree(sdp_zone, ssk);
More information about the svn-src-projects
mailing list