Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Feb 2018 12:38:40 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r329572 - projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp
Message-ID:  <201802191238.w1JCceiU063522@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802191238.w1JCceiU063522>