Version: 1
-Previous: 86a70aebd114e2512919751c7235d90fe5d4d42c
-Head: 571977ce65af395f806a83a1921039d3cd084839
+Previous: 93dc56f31dab88bc26b00243702affb30be00844
+Head: 9d48d92cef68f89ce9a8f84858f4cb49b690241c
Applied:
- dapl-evd: 4ccb194281d00e87e08e090517d2d2d947a66b01
- refresh-temp: 571977ce65af395f806a83a1921039d3cd084839
+ dapl-evd: 9d48d92cef68f89ce9a8f84858f4cb49b690241c
Unapplied:
overlap: dfe75689835ce5dc1dbe80fd8c8ca144db6383b9
dapl-qp: 57f50f5e232bbdddff67fc4dae43c66cfce81c5e
Bottom: e0a336baf5ecfc37b867ad87df4aa629ac448200
-Top: e0a336baf5ecfc37b867ad87df4aa629ac448200
+Top: 1f8a8438356e65ed344028d949bd8033fc3cdae4
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_free.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
+index 3bfc541..e7268ac 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)
+ }
+ }
+
++ 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);
++ }
++
+ /* Free the resource */
+ dapl_ep_dealloc(ep_ptr);
+
+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
+--- 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,
+ \r
+ ep_ptr = cookie->ep;\r
+ dapl_os_assert((NULL != ep_ptr));\r
+- if (ep_ptr->header.magic != DAPL_MAGIC_EP) {\r
+- /* ep may have been freed, just return */\r
+- return;\r
+- }\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)
+ \r
+ dapli_evd_cqe_to_event(evd_ptr, &cur_cqe, event);\r
+ \r
+- dapli_evd_post_event_nosignal(evd_ptr, event);\r
++ dapli_evd_post_event(evd_ptr, event);\r
+ }\r
+ \r
+ if (DAT_GET_TYPE(dat_status) != DAT_QUEUE_EMPTY) {\r
+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
++++ b/trunk/ulp/dapl2/dapl/udapl/dapl_evd_wait.c
+@@ -168,9 +168,7 @@ DAT_RETURN DAT_API dapl_evd_wait(IN DAT_EVD_HANDLE evd_handle,
+ * return right away if the ib_cq_handle associate with these evd
+ * equal to IB_INVALID_HANDLE
+ */
+- dapl_os_unlock(&evd_ptr->header.lock);
+ dapls_evd_copy_cq(evd_ptr);
+- dapl_os_lock(&evd_ptr->header.lock);
+
+ if (dapls_rbuf_count(&evd_ptr->pending_event_queue) >=
+ threshold) {
+++ /dev/null
-Bottom: e0a336baf5ecfc37b867ad87df4aa629ac448200
-Top: 1f8a8438356e65ed344028d949bd8033fc3cdae4
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2010-09-16 11:57:26 -0700
-
-Refresh of dapl-evd
-
----
-
-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
---- 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)
- }
- }
-
-+ 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);
-+ }
-+
- /* Free the resource */
- dapl_ep_dealloc(ep_ptr);
-
-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
---- 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,
- \r
- ep_ptr = cookie->ep;\r
- dapl_os_assert((NULL != ep_ptr));\r
-- if (ep_ptr->header.magic != DAPL_MAGIC_EP) {\r
-- /* ep may have been freed, just return */\r
-- return;\r
-- }\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)
- \r
- dapli_evd_cqe_to_event(evd_ptr, &cur_cqe, event);\r
- \r
-- dapli_evd_post_event_nosignal(evd_ptr, event);\r
-+ dapli_evd_post_event(evd_ptr, event);\r
- }\r
- \r
- if (DAT_GET_TYPE(dat_status) != DAT_QUEUE_EMPTY) {\r
-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
-+++ b/trunk/ulp/dapl2/dapl/udapl/dapl_evd_wait.c
-@@ -168,9 +168,7 @@ DAT_RETURN DAT_API dapl_evd_wait(IN DAT_EVD_HANDLE evd_handle,
- * return right away if the ib_cq_handle associate with these evd
- * equal to IB_INVALID_HANDLE
- */
-- dapl_os_unlock(&evd_ptr->header.lock);
- dapls_evd_copy_cq(evd_ptr);
-- dapl_os_lock(&evd_ptr->header.lock);
-
- if (dapls_rbuf_count(&evd_ptr->pending_event_queue) >=
- threshold) {