[openib-general] [PATCH] backlog ignored when listening on all devs

Steve Wise swise at opengridcomputing.com
Thu Jun 15 13:11:57 PDT 2006


Sean, I think this is a bug, eh?

If you listen on 0.0.0.0, then the backlog isn't passed down to the
devices because its not stored in the id_priv struct before calling
cma_listen_on_all().  See cma_list_on_dev() which uses
id_priv->backlog...

Signed-off-by: Steve Wise <swise at opengridcomputing.com>

----------

Index: cma.c
===================================================================
--- cma.c	(revision 7626)
+++ cma.c	(working copy)
@@ -1086,6 +1086,7 @@
 	if (!cma_comp_exch(id_priv, CMA_ADDR_BOUND, CMA_LISTEN))
 		return -EINVAL;
 
+	id_priv->backlog = backlog;
 	if (id->device) {
 		switch (rdma_node_get_transport(id->device->node_type)) {
 		case RDMA_TRANSPORT_IB:
@@ -1100,9 +1101,9 @@
 	} else
 		cma_listen_on_all(id_priv);
 
-	id_priv->backlog = backlog;
 	return 0;
 err:
+	id_priv->backlog = 0;
 	cma_comp_exch(id_priv, CMA_LISTEN, CMA_ADDR_BOUND);
 	return ret;
 }





More information about the general mailing list