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 <[EMAIL PROTECTED]>

----------

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;
 }


_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to