cm_release was incorrectly freeing a client port assuming it was the server listening port. Move the listening port cleanup to remove_conn_listner and only cleanup client ports in cm_release.
Error Messages indicating problem: CM_REQ retry 1 [lid, port, qpn]: 9 ff9a 340085 -> 9 6fa 34004e Time(ms) 1999 > 1600 DUPLICATE: op REQ st CM_CONNECTED [lid, port, qpn]: 9 6fa 0x0 <- 0x9 ff9a 0x340085 Signed-off-by: Arlin Davis <[email protected]> --- dapl/openib_ucm/cm.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/dapl/openib_ucm/cm.c b/dapl/openib_ucm/cm.c index 806602f..b874c8b 100644 --- a/dapl/openib_ucm/cm.c +++ b/dapl/openib_ucm/cm.c @@ -657,10 +657,6 @@ void dapls_cm_release(dp_ib_cm_handle_t cm) if (!cm->sp && cm->msg.sport) ucm_free_port(&cm->hca->ib_trans, ntohs(cm->msg.sport)); - /* server, release local conn id port */ - if (cm->sp && cm->msg.dport) - ucm_free_port(&cm->hca->ib_trans, ntohs(cm->msg.dport)); - /* clean up any UD address handles */ if (cm->ah) { ibv_destroy_ah(cm->ah); @@ -1753,6 +1749,7 @@ dapls_ib_remove_conn_listener(IN DAPL_IA *ia, IN DAPL_SP *sp) sp->cm_srvc_handle = NULL; dapli_dequeue_listen(cm); + ucm_free_port(&cm->hca->ib_trans, ntohs(cm->msg.sport)); dapls_cm_release(cm); /* last ref, dealloc */ } return DAT_SUCCESS; -- 1.5.2.5 _______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
