From 625369f991982f020c04156f312ecf2ecafd77b3 Mon Sep 17 00:00:00 2001 From: Arlin Davis Date: Mon, 10 May 2010 12:46:17 -0700 Subject: [PATCH] ucm: UD mode, active side cm object released to soon, the RTU could be lost. Will see following message with DAPL_DBG_TYPE set for Errors & Warnings (0x3): ucm_recv: NO MATCH op REP 0x120 65487 i0x60005e c0x60005e < 0xd2 19824 0x60006a The cm object was released on the active side after the connection was established, RTU sent. This is a problem if the RTU is lost and the remote side retries the REPLY. The RTU is never resent. Keep the cm object until the EP is destroyed. Signed-off-by: Arlin Davis --- dapl/openib_ucm/cm.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/dapl/openib_ucm/cm.c b/dapl/openib_ucm/cm.c index c82147e..94af988 100644 --- a/dapl/openib_ucm/cm.c +++ b/dapl/openib_ucm/cm.c @@ -1143,10 +1143,6 @@ ud_bail: (DAT_COUNT)ntohs(cm->msg.p_size), (DAT_PVOID *)cm->msg.p_data, (DAT_PVOID *)&xevent); - - /* release cm_ptr, EP refs will prevent destroy */ - dapli_cm_free(cm); - } else #endif { @@ -1310,10 +1306,6 @@ 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); - - /* done with CM object, EP ref will hold object for pdata */ - dapli_cm_free(cm); - } else { #endif dapls_cr_callback(cm, IB_CME_CONNECTED, NULL, 0, cm->sp); -- 2.46.0