[ofw] [PATCH 4/4] DAPL v2.0: ucm: release UD cm objects after AH is exchanged to avoid duplicate request drops

Davis, Arlin R arlin.r.davis at intel.com
Fri Dec 3 15:33:24 PST 2010


When EP is UD mode, AH resolution is handled with DAT connection semantics
connect and accept. Since AH info can be resolved for the same EPs you can
get false duplicate requests because a previous CR from is still on the
CM processing list. The CM object should be removed. It will remain on the 
EP free list and not be freed until EP is destroyed given the possibility 
of consumer accessing CR private data buffer after CONN_EST event.

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

diff --git a/dapl/openib_ucm/cm.c b/dapl/openib_ucm/cm.c
index 36291fd..5b157fd 100644
--- a/dapl/openib_ucm/cm.c
+++ b/dapl/openib_ucm/cm.c
@@ -1186,6 +1186,7 @@ ud_bail:
 				(DAT_COUNT)ntohs(cm->msg.p_size),
 				(DAT_PVOID *)cm->msg.p_data,
 				(DAT_PVOID *)&xevent);
+		dapli_cm_free(cm); /* still attached to EP */
 	} else
 #endif
 	{
@@ -1358,6 +1359,7 @@ static void ucm_accept_rtu(dp_ib_cm_handle_t cm, ib_cm_msg_t *msg)
 				(DAT_COUNT)ntohs(cm->msg.p_size),
 				(DAT_PVOID *)cm->msg.p_data,
 				(DAT_PVOID *)&xevent);
+		dapli_cm_free(cm); /* still attached to EP */
 	} else {
 #endif
 		dapls_cr_callback(cm, IB_CME_CONNECTED, NULL, 0, cm->sp);
-- 
1.7.3






More information about the ofw mailing list