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 <[email protected]> --- 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 _______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
