Bottom: e0a336baf5ecfc37b867ad87df4aa629ac448200
-Top: 1f8a8438356e65ed344028d949bd8033fc3cdae4
+Top: 84611ba9217ac3e6de75f53e37b41fcca0916e87
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2010-09-16 10:11:40 -0700
---
+diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c
+index 72da620..90748b0 100644
+--- a/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c
++++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c
+@@ -165,6 +165,7 @@ dapl_ep_disconnect(IN DAT_EP_HANDLE ep_handle,
+ }
+ dapl_os_unlock(&ep_ptr->header.lock);
+ dat_status = dapls_ib_disconnect(ep_ptr, disconnect_flags);
++ dapls_ep_flush_cqs(ep_ptr);
+
+ bail:
+ dapl_dbg_log(DAPL_DBG_TYPE_RTN | DAPL_DBG_TYPE_CM,
diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-index 3bfc541..e7268ac 100644
+index 3bfc541..32d50cc 100644
--- a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
+++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-@@ -65,6 +65,7 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
- {
- DAPL_EP *ep_ptr;
- DAPL_IA *ia_ptr;
-+ DAPL_EVD *evd_ptr;
- DAT_EP_PARAM *param;
- dp_ib_cm_handle_t cm_ptr, next_cm_ptr;
- ib_qp_state_t save_qp_state;
-@@ -202,6 +203,19 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
+@@ -202,6 +202,8 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
}
}
-+ if (ep_ptr->param.request_evd_handle) {
-+ evd_ptr = (DAPL_EVD *) ep_ptr->param.request_evd_handle;
-+ dapl_os_lock(&evd_ptr->header.lock);
-+ dapls_evd_copy_cq(evd_ptr);
-+ dapl_os_unlock(&evd_ptr->header.lock);
-+ }
-+ if (ep_ptr->param.recv_evd_handle) {
-+ evd_ptr = (DAPL_EVD *) ep_ptr->param.recv_evd_handle;
-+ dapl_os_lock(&evd_ptr->header.lock);
-+ dapls_evd_copy_cq(evd_ptr);
-+ dapl_os_unlock(&evd_ptr->header.lock);
-+ }
++ dapls_ep_flush_cqs(ep_ptr);
+
/* 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 9aff242..bd91fc7 100644
+--- a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
++++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
+@@ -606,6 +606,22 @@ void dapl_ep_unlink_cm(IN DAPL_EP *ep_ptr, IN dp_ib_cm_handle_t cm_ptr)
+ dapl_os_unlock(&ep_ptr->header.lock);
+ }
+
++static void dapli_ep_flush_evd(DAPL_EVD *evd_ptr)
++{
++ dapl_os_lock(&evd_ptr->header.lock);
++ dapls_evd_copy_cq(evd_ptr);
++ dapl_os_unlock(&evd_ptr->header.lock);
++}
++
++void dapls_ep_flush_cqs(DAPL_EP * ep_ptr)\r
++{\r
++ if (ep_ptr->param.request_evd_handle)
++ dapli_ep_flush_evd((DAPL_EVD *) ep_ptr->param.request_evd_handle);
++
++ if (ep_ptr->param.recv_evd_handle)
++ dapli_ep_flush_evd((DAPL_EVD *) ep_ptr->param.recv_evd_handle);
++}
++
+ /*
+ * Local variables:
+ * c-indent-level: 4
+diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h
+index 31d0e23..66b2de6 100644
+--- a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h
++++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h
+@@ -101,5 +101,7 @@ STATIC _INLINE_ dp_ib_cm_handle_t dapl_get_cm_from_ep(IN DAPL_EP *ep_ptr)
+
+ return cm_ptr;
+ }
+-
++
++extern void dapls_ep_flush_cqs(DAPL_EP * ep_ptr);\r
++
+ #endif /* _DAPL_EP_UTIL_H_ */
diff --git a/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c b/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c
-index 4035008..b27fd15 100644
+index 4035008..675e948 100644
--- a/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c
+++ b/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c
-@@ -1187,10 +1187,6 @@ dapli_evd_cqe_to_event(IN DAPL_EVD * evd_ptr,
+@@ -673,14 +673,6 @@ dapli_evd_post_event(IN DAPL_EVD * evd_ptr, IN const DAT_EVENT * event_ptr)
+ dapl_os_unlock(&evd_ptr->header.lock);\r
+ }\r
+ } else {\r
+- /*\r
+- * We're in DAPL_EVD_STATE_WAITED. Take the lock if\r
+- * we don't have it, recheck, and signal.\r
+- */\r
+- if (!evd_ptr->evd_producer_locking_needed) {\r
+- dapl_os_lock(&evd_ptr->header.lock);\r
+- }\r
+-\r
+ if (evd_ptr->evd_state == DAPL_EVD_STATE_WAITED\r
+ && (dapls_rbuf_count(&evd_ptr->pending_event_queue)\r
+ >= evd_ptr->threshold)) {\r
+@@ -1187,10 +1179,6 @@ dapli_evd_cqe_to_event(IN DAPL_EVD * evd_ptr,
\r
ep_ptr = cookie->ep;\r
dapl_os_assert((NULL != ep_ptr));\r
\r
dapls_io_trc_update_completion(ep_ptr, cookie, dto_status);\r
\r
-@@ -1392,7 +1388,7 @@ void dapls_evd_copy_cq(DAPL_EVD * evd_ptr)
+@@ -1392,7 +1380,7 @@ void dapls_evd_copy_cq(DAPL_EVD * evd_ptr)
\r
dapli_evd_cqe_to_event(evd_ptr, &cur_cqe, event);\r
\r
}\r
\r
if (DAT_GET_TYPE(dat_status) != DAT_QUEUE_EMPTY) {\r
+diff --git a/trunk/ulp/dapl2/dapl/openib_ucm/device.c b/trunk/ulp/dapl2/dapl/openib_ucm/device.c
+index 1959c76..b7d9efd 100644
+--- a/trunk/ulp/dapl2/dapl/openib_ucm/device.c
++++ b/trunk/ulp/dapl2/dapl/openib_ucm/device.c
+@@ -581,8 +581,6 @@ void ucm_async_event(struct dapl_hca *hca)
+ struct ibv_async_event event;
+ struct _ib_hca_transport *tp = &hca->ib_trans;
+
+- dapl_log(DAPL_DBG_TYPE_WARN, " async_event(%p)\n", hca);
+-
+ if (!ibv_get_async_event(hca->ib_hca_handle, &event)) {
+
+ switch (event.event_type) {
diff --git a/trunk/ulp/dapl2/dapl/udapl/dapl_evd_wait.c b/trunk/ulp/dapl2/dapl/udapl/dapl_evd_wait.c
index 79afb0d..135951c 100644
--- a/trunk/ulp/dapl2/dapl/udapl/dapl_evd_wait.c
+++ /dev/null
-Bottom: 1f8a8438356e65ed344028d949bd8033fc3cdae4
-Top: 84611ba9217ac3e6de75f53e37b41fcca0916e87
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2010-09-16 13:24:57 -0700
-
-Refresh of dapl-evd
-
----
-
-diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c
-index 72da620..90748b0 100644
---- a/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c
-+++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c
-@@ -165,6 +165,7 @@ dapl_ep_disconnect(IN DAT_EP_HANDLE ep_handle,
- }
- dapl_os_unlock(&ep_ptr->header.lock);
- dat_status = dapls_ib_disconnect(ep_ptr, disconnect_flags);
-+ dapls_ep_flush_cqs(ep_ptr);
-
- bail:
- dapl_dbg_log(DAPL_DBG_TYPE_RTN | DAPL_DBG_TYPE_CM,
-diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-index e7268ac..32d50cc 100644
---- a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-+++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-@@ -65,7 +65,6 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
- {
- DAPL_EP *ep_ptr;
- DAPL_IA *ia_ptr;
-- DAPL_EVD *evd_ptr;
- DAT_EP_PARAM *param;
- dp_ib_cm_handle_t cm_ptr, next_cm_ptr;
- ib_qp_state_t save_qp_state;
-@@ -203,18 +202,7 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
- }
- }
-
-- if (ep_ptr->param.request_evd_handle) {
-- evd_ptr = (DAPL_EVD *) ep_ptr->param.request_evd_handle;
-- dapl_os_lock(&evd_ptr->header.lock);
-- dapls_evd_copy_cq(evd_ptr);
-- dapl_os_unlock(&evd_ptr->header.lock);
-- }
-- if (ep_ptr->param.recv_evd_handle) {
-- evd_ptr = (DAPL_EVD *) ep_ptr->param.recv_evd_handle;
-- dapl_os_lock(&evd_ptr->header.lock);
-- dapls_evd_copy_cq(evd_ptr);
-- dapl_os_unlock(&evd_ptr->header.lock);
-- }
-+ dapls_ep_flush_cqs(ep_ptr);
-
- /* 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 9aff242..bd91fc7 100644
---- a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
-+++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
-@@ -606,6 +606,22 @@ void dapl_ep_unlink_cm(IN DAPL_EP *ep_ptr, IN dp_ib_cm_handle_t cm_ptr)
- dapl_os_unlock(&ep_ptr->header.lock);
- }
-
-+static void dapli_ep_flush_evd(DAPL_EVD *evd_ptr)
-+{
-+ dapl_os_lock(&evd_ptr->header.lock);
-+ dapls_evd_copy_cq(evd_ptr);
-+ dapl_os_unlock(&evd_ptr->header.lock);
-+}
-+
-+void dapls_ep_flush_cqs(DAPL_EP * ep_ptr)\r
-+{\r
-+ if (ep_ptr->param.request_evd_handle)
-+ dapli_ep_flush_evd((DAPL_EVD *) ep_ptr->param.request_evd_handle);
-+
-+ if (ep_ptr->param.recv_evd_handle)
-+ dapli_ep_flush_evd((DAPL_EVD *) ep_ptr->param.recv_evd_handle);
-+}
-+
- /*
- * Local variables:
- * c-indent-level: 4
-diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h
-index 31d0e23..66b2de6 100644
---- a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h
-+++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h
-@@ -101,5 +101,7 @@ STATIC _INLINE_ dp_ib_cm_handle_t dapl_get_cm_from_ep(IN DAPL_EP *ep_ptr)
-
- return cm_ptr;
- }
--
-+
-+extern void dapls_ep_flush_cqs(DAPL_EP * ep_ptr);\r
-+
- #endif /* _DAPL_EP_UTIL_H_ */
-diff --git a/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c b/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c
-index b27fd15..675e948 100644
---- a/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c
-+++ b/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c
-@@ -673,14 +673,6 @@ dapli_evd_post_event(IN DAPL_EVD * evd_ptr, IN const DAT_EVENT * event_ptr)
- dapl_os_unlock(&evd_ptr->header.lock);\r
- }\r
- } else {\r
-- /*\r
-- * We're in DAPL_EVD_STATE_WAITED. Take the lock if\r
-- * we don't have it, recheck, and signal.\r
-- */\r
-- if (!evd_ptr->evd_producer_locking_needed) {\r
-- dapl_os_lock(&evd_ptr->header.lock);\r
-- }\r
--\r
- if (evd_ptr->evd_state == DAPL_EVD_STATE_WAITED\r
- && (dapls_rbuf_count(&evd_ptr->pending_event_queue)\r
- >= evd_ptr->threshold)) {\r
-diff --git a/trunk/ulp/dapl2/dapl/openib_ucm/device.c b/trunk/ulp/dapl2/dapl/openib_ucm/device.c
-index 1959c76..b7d9efd 100644
---- a/trunk/ulp/dapl2/dapl/openib_ucm/device.c
-+++ b/trunk/ulp/dapl2/dapl/openib_ucm/device.c
-@@ -581,8 +581,6 @@ void ucm_async_event(struct dapl_hca *hca)
- struct ibv_async_event event;
- struct _ib_hca_transport *tp = &hca->ib_trans;
-
-- dapl_log(DAPL_DBG_TYPE_WARN, " async_event(%p)\n", hca);
--
- if (!ibv_get_async_event(hca->ib_hca_handle, &event)) {
-
- switch (event.event_type) {