Bottom: 6e1690af48f30c8d7839fc5dbf6e9f6c7bd92ede
-Top: df47ff742cc2547287e425bd50227b8e3674b817
+Top: dbcf25cbcc653c0e705b4ba3fc0bba7672086d8f
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2010-10-14 10:46:46 -0700
---
diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-index 32d50cc..56b3686 100644
+index 32d50cc..a8deeb2 100644
--- a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
+++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-@@ -157,16 +157,16 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
+@@ -157,16 +157,6 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
pz_ref_count);
param->pz_handle = NULL;
}
- evd_ref_count);
- param->request_evd_handle = NULL;
- }
-+ //if (param->recv_evd_handle != NULL) {
-+ // dapl_os_atomic_dec(&((DAPL_EVD *) param->recv_evd_handle)->
-+ // evd_ref_count);
-+ // param->recv_evd_handle = NULL;
-+ //}
-+ //if (param->request_evd_handle != NULL) {
-+ // dapl_os_atomic_dec(&((DAPL_EVD *) param->request_evd_handle)->
-+ // evd_ref_count);
-+ // param->request_evd_handle = NULL;
-+ //}
if (param->connect_evd_handle != NULL) {
dapl_os_atomic_dec(&((DAPL_EVD *) param->connect_evd_handle)->
evd_ref_count);
-@@ -202,7 +202,20 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
+@@ -202,7 +192,20 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
}
}
/* Free the resource */
dapl_ep_dealloc(ep_ptr);
+diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
+index fc911a6..e3c647f 100644
+--- a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
++++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
+@@ -620,11 +620,13 @@ static void dapli_ep_flush_evd(DAPL_EVD *evd_ptr)
+
+ void dapls_ep_flush_cqs(DAPL_EP * ep_ptr)
+ {
+- if (ep_ptr->param.request_evd_handle)
++ while (dapls_cb_pending(&ep_ptr->req_buffer)) {
+ dapli_ep_flush_evd((DAPL_EVD *) ep_ptr->param.request_evd_handle);
++ }
+
+- if (ep_ptr->param.recv_evd_handle)
++ while (dapls_cb_pending(&ep_ptr->recv_buffer)) {
+ dapli_ep_flush_evd((DAPL_EVD *) ep_ptr->param.recv_evd_handle);
++ }
+ }
+
+ /*
diff --git a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
-index e843829..7a64f1d 100644
+index e843829..4ea57d7 100644
--- a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
+++ b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
@@ -317,6 +317,7 @@ dapls_ib_qp_free (
UNREFERENCED_PARAMETER(ia_ptr);
-@@ -327,12 +328,20 @@ dapls_ib_qp_free (
+@@ -327,12 +328,19 @@ dapls_ib_qp_free (
dapl_os_lock(&ep_ptr->header.lock);
if (( ep_ptr->qp_handle != IB_INVALID_HANDLE ))
{
+ dapl_os_unlock(&ep_ptr->header.lock);
+
+ dapls_modify_qp_state_to_error(qp);
-+ dapls_modify_qp_state_to_reset(qp);
+ dapls_ep_flush_cqs(ep_ptr);
+
+ ib_destroy_qp ( qp, ib_sync_destroy );
return DAT_SUCCESS;
}
diff --git a/trunk/ulp/dapl2/dapl/openib_common/qp.c b/trunk/ulp/dapl2/dapl/openib_common/qp.c
-index 179eef0..6024db3 100644
+index 179eef0..fbb874a 100644
--- a/trunk/ulp/dapl2/dapl/openib_common/qp.c
+++ b/trunk/ulp/dapl2/dapl/openib_common/qp.c
-@@ -209,30 +209,38 @@ dapls_ib_qp_alloc(IN DAPL_IA * ia_ptr,
+@@ -209,30 +209,37 @@ dapls_ib_qp_alloc(IN DAPL_IA * ia_ptr,
*/
DAT_RETURN dapls_ib_qp_free(IN DAPL_IA * ia_ptr, IN DAPL_EP * ep_ptr)
{
/* force error state to flush queue, then destroy */
- dapls_modify_qp_state(ep_ptr->qp_handle, IBV_QPS_ERR, 0,0,0);
+ dapls_modify_qp_state(qp, IBV_QPS_ERR, 0,0,0);
-+ dapls_modify_qp_state(qp, IBV_QPS_RESET, 0,0,0);
+ dapls_ep_flush_cqs(ep_ptr);
- if (ibv_destroy_qp(ep_ptr->qp_handle)) {
+++ /dev/null
-Bottom: df47ff742cc2547287e425bd50227b8e3674b817
-Top: dbcf25cbcc653c0e705b4ba3fc0bba7672086d8f
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2010-10-14 11:27:46 -0700
-
-Refresh of dapl-spawn
-
----
-
-diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-index 56b3686..a8deeb2 100644
---- a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-+++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-@@ -157,16 +157,6 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
- pz_ref_count);
- param->pz_handle = NULL;
- }
-- //if (param->recv_evd_handle != NULL) {
-- // dapl_os_atomic_dec(&((DAPL_EVD *) param->recv_evd_handle)->
-- // evd_ref_count);
-- // param->recv_evd_handle = NULL;
-- //}
-- //if (param->request_evd_handle != NULL) {
-- // dapl_os_atomic_dec(&((DAPL_EVD *) param->request_evd_handle)->
-- // evd_ref_count);
-- // param->request_evd_handle = NULL;
-- //}
- if (param->connect_evd_handle != NULL) {
- dapl_os_atomic_dec(&((DAPL_EVD *) param->connect_evd_handle)->
- evd_ref_count);
-diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
-index fc911a6..e3c647f 100644
---- a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
-+++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
-@@ -620,11 +620,13 @@ static void dapli_ep_flush_evd(DAPL_EVD *evd_ptr)
-
- void dapls_ep_flush_cqs(DAPL_EP * ep_ptr)
- {
-- if (ep_ptr->param.request_evd_handle)
-+ while (dapls_cb_pending(&ep_ptr->req_buffer)) {
- dapli_ep_flush_evd((DAPL_EVD *) ep_ptr->param.request_evd_handle);
-+ }
-
-- if (ep_ptr->param.recv_evd_handle)
-+ while (dapls_cb_pending(&ep_ptr->recv_buffer)) {
- dapli_ep_flush_evd((DAPL_EVD *) ep_ptr->param.recv_evd_handle);
-+ }
- }
-
- /*
-diff --git a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
-index 7a64f1d..4ea57d7 100644
---- a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
-+++ b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
-@@ -333,7 +333,6 @@ dapls_ib_qp_free (
- dapl_os_unlock(&ep_ptr->header.lock);
-
- dapls_modify_qp_state_to_error(qp);
-- dapls_modify_qp_state_to_reset(qp);
- dapls_ep_flush_cqs(ep_ptr);
-
- ib_destroy_qp ( qp, ib_sync_destroy );
-diff --git a/trunk/ulp/dapl2/dapl/openib_common/qp.c b/trunk/ulp/dapl2/dapl/openib_common/qp.c
-index 6024db3..fbb874a 100644
---- a/trunk/ulp/dapl2/dapl/openib_common/qp.c
-+++ b/trunk/ulp/dapl2/dapl/openib_common/qp.c
-@@ -225,7 +225,6 @@ DAT_RETURN dapls_ib_qp_free(IN DAPL_IA * ia_ptr, IN DAPL_EP * ep_ptr)
-
- /* force error state to flush queue, then destroy */
- dapls_modify_qp_state(qp, IBV_QPS_ERR, 0,0,0);
-- dapls_modify_qp_state(qp, IBV_QPS_RESET, 0,0,0);
- dapls_ep_flush_cqs(ep_ptr);
-
- #ifdef _OPENIB_CMA_