[ofw] [PATCH] dapl-2.0 - common: cleanup CR linkings after DTO error on EP

Davis, Arlin R arlin.r.davis at intel.com
Mon Aug 2 11:30:53 PDT 2010



Add cleanup to remove CR from SP and EP
during DTO errors in dapli_evd_cqe_to_event.

dapl_sp_remove_ep needs to remove cr_ptr
reference from EP before freeing cr object.

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

diff --git a/dapl/common/dapl_evd_util.c b/dapl/common/dapl_evd_util.c
index cb3eb1b..12d38ff 100644
--- a/dapl/common/dapl_evd_util.c
+++ b/dapl/common/dapl_evd_util.c
@@ -1316,6 +1316,7 @@ dapli_evd_cqe_to_event(IN DAPL_EVD * evd_ptr,
 
 			/* ... and clean up the local side */
 			evd_ptr = (DAPL_EVD *) ep_ptr->param.connect_evd_handle;
+			dapl_sp_remove_ep (ep_ptr);
 			if (evd_ptr != NULL) {
 				dapls_evd_post_connection_event(evd_ptr,
 								DAT_CONNECTION_EVENT_BROKEN,
diff --git a/dapl/common/dapl_sp_util.c b/dapl/common/dapl_sp_util.c
index c1a3fdb..fba3711 100644
--- a/dapl/common/dapl_sp_util.c
+++ b/dapl/common/dapl_sp_util.c
@@ -264,6 +264,8 @@ void dapl_sp_remove_ep(IN DAPL_EP * ep_ptr)
 
 		dapl_os_unlock(&sp_ptr->header.lock);
 
+		ep_ptr->cr_ptr = NULL;
+
 		/* free memory outside of the lock */
 		dapls_cr_free(cr_ptr);
 
-- 
1.5.2.5




More information about the ofw mailing list