[ofa-general] [PATCH 08/11] uDAPL scm: destroy QP called before disconnect

Davis, Arlin R arlin.r.davis at intel.com
Mon Jul 6 12:52:21 PDT 2009


Handle the case where QP is destroyed before
disconnect processing. Windows supports
reinit_qp during a disconnect call by
destroying the QP and recreating the
QO instead of state change from reset
to init. Call disconnect in destroy
CM code to handle this unexpected state.

Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
---
 dapl/openib_scm/cm.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/dapl/openib_scm/cm.c b/dapl/openib_scm/cm.c
index 5708214..9713641 100644
--- a/dapl/openib_scm/cm.c
+++ b/dapl/openib_scm/cm.c
@@ -283,6 +283,9 @@ void dapls_ib_cm_free(dp_ib_cm_handle_t cm_ptr, DAPL_EP *ep)
 		return;
 	}
 
+	/* free could be called before disconnect */
+	dapli_socket_disconnect(cm_ptr);
+
 	dapl_os_lock(&cm_ptr->lock);
 	cm_ptr->state = DCM_DESTROY;
 	if ((cm_ptr->ep) && (cm_ptr->ep->cm_handle == cm_ptr)) {
-- 
1.5.2.5




More information about the general mailing list