From 9dfa9a06d55101fed0773028ce7ab85330514c67 Mon Sep 17 00:00:00 2001 From: Arlin Davis Date: Wed, 18 Nov 2009 09:52:40 -0800 Subject: [PATCH] cma: setup_listener Cannot assign requested address Colliding with RDS port of 18634. rdma_cm can return either EADDRINUSE or EADDRNOTAVAIL if the bind fails. Add check for either and return proper DAT_CONN_QUAL_IN_USE. Signed-off-by: Arlin Davis --- dapl/openib_cma/cm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dapl/openib_cma/cm.c b/dapl/openib_cma/cm.c index 40634b2..c52e716 100644 --- a/dapl/openib_cma/cm.c +++ b/dapl/openib_cma/cm.c @@ -694,7 +694,8 @@ dapls_ib_setup_conn_listener(IN DAPL_IA * ia_ptr, ((struct sockaddr_in *)&addr)->sin_port = SID_TO_PORT(ServiceID); if (rdma_bind_addr(conn->cm_id, (struct sockaddr *)&addr)) { - if ((errno == EBUSY) || (errno == EADDRINUSE)) + if ((errno == EBUSY) || (errno == EADDRINUSE) || + (errno == EADDRNOTAVAIL)) dat_status = DAT_CONN_QUAL_IN_USE; else dat_status = @@ -717,7 +718,8 @@ dapls_ib_setup_conn_listener(IN DAPL_IA * ia_ptr, if (rdma_listen(conn->cm_id, 0)) { /* max cma backlog */ - if ((errno == EBUSY) || (errno == EADDRINUSE)) + if ((errno == EBUSY) || (errno == EADDRINUSE) || + (errno == EADDRNOTAVAIL)) dat_status = DAT_CONN_QUAL_IN_USE; else dat_status = -- 2.41.0