[ofa-general] [PATCH] dapl v2: dat_psp_create_any fails, return code and conn_qual seed value incorrect
Arlin Davis
arlin.r.davis at intel.com
Mon Feb 11 13:58:30 PST 2008
Fix v2 udapl for OFED 1.3 rc4, Bug 910:
The OFA dapl provider is checking for incorrect return code
from rdma_bind_addr and rdma_listen calls. This causes an error
to be returned back to the consumer instead of correctly
incrementing the seed port and re-calling the OFA provider
until a valid port is issued. The seed value (1000) is also
incorrect and should start a non-privledged port (1024) to
avoid EPERM errors when seeding the starting port value.
Patch against master branch (v2):
Signed-off by: Arlin Davis <ardavis at ichips.intel.com>
diff --git a/dapl/common/dapl_psp_create_any.c b/dapl/common/dapl_psp_create_any.c
index a2768fb..e2faa4a 100644
--- a/dapl/common/dapl_psp_create_any.c
+++ b/dapl/common/dapl_psp_create_any.c
@@ -82,7 +82,7 @@ dapl_psp_create_any (
DAPL_SP *sp_ptr;
DAPL_EVD *evd_ptr;
DAT_RETURN dat_status;
- static DAT_CONN_QUAL hint_conn_qual = 1000; /* seed value */
+ static DAT_CONN_QUAL hint_conn_qual = 1024; /* seed value */
DAT_CONN_QUAL lcl_conn_qual;
DAT_CONN_QUAL limit_conn_qual;
diff --git a/dapl/openib_cma/dapl_ib_cm.c b/dapl/openib_cma/dapl_ib_cm.c
index e65debc..811789e 100755
--- a/dapl/openib_cma/dapl_ib_cm.c
+++ b/dapl/openib_cma/dapl_ib_cm.c
@@ -690,7 +690,7 @@ 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)
+ if ((errno == EBUSY) || (errno == EADDRINUSE))
dat_status = DAT_CONN_QUAL_IN_USE;
else
dat_status =
@@ -713,7 +713,7 @@ dapls_ib_setup_conn_listener(IN DAPL_IA *ia_ptr,
if (rdma_listen(conn->cm_id,64)) { /* backlog to 64 */
- if (errno == EBUSY)
+ if ((errno == EBUSY) || (errno == EADDRINUSE))
dat_status = DAT_CONN_QUAL_IN_USE;
else
dat_status =
More information about the general
mailing list