If creation parameters are not sent a sender will not trigger
mcast group creation. Fixes bug #1153 in bugzilla.

Signed-off-by: Yossi Etigin <[EMAIL PROTECTED]>

--

Index: b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
===================================================================
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c    2008-09-08 
23:04:46.000000000 +0300
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c    2008-09-09 
19:40:26.000000000 +0300
@@ -327,6 +327,7 @@ static int ipoib_mcast_sendonly_join(str
                .join_state = 1
#endif
        };
+       ib_sa_comp_mask comp_mask;
        int ret = 0;

        if (!test_bit(IPOIB_FLAG_OPER_UP, &priv->flags)) {
@@ -339,16 +340,37 @@ static int ipoib_mcast_sendonly_join(str
                return -EBUSY;
        }

-       rec.mgid     = mcast->mcmember.mgid;
-       rec.port_gid = priv->local_gid;
-       rec.pkey     = cpu_to_be16(priv->pkey);
+       comp_mask =
+               IB_SA_MCMEMBER_REC_MGID |
+               IB_SA_MCMEMBER_REC_PORT_GID |
+               IB_SA_MCMEMBER_REC_PKEY |
+               IB_SA_MCMEMBER_REC_JOIN_STATE |
+               IB_SA_MCMEMBER_REC_QKEY |
+               IB_SA_MCMEMBER_REC_MTU_SELECTOR |
+               IB_SA_MCMEMBER_REC_MTU |
+               IB_SA_MCMEMBER_REC_TRAFFIC_CLASS |
+               IB_SA_MCMEMBER_REC_RATE_SELECTOR |
+               IB_SA_MCMEMBER_REC_RATE |
+               IB_SA_MCMEMBER_REC_SL |
+               IB_SA_MCMEMBER_REC_FLOW_LABEL |
+               IB_SA_MCMEMBER_REC_HOP_LIMIT;
+
+       rec.mgid          = mcast->mcmember.mgid;
+       rec.port_gid      = priv->local_gid;
+       rec.pkey          = cpu_to_be16(priv->pkey);
+       rec.qkey          = priv->broadcast->mcmember.qkey;
+       rec.mtu_selector  = IB_SA_EQ;
+       rec.mtu           = priv->broadcast->mcmember.mtu;
+       rec.traffic_class = priv->broadcast->mcmember.traffic_class;
+       rec.rate_selector = IB_SA_EQ;
+       rec.rate          = priv->broadcast->mcmember.rate;
+       rec.sl            = priv->broadcast->mcmember.sl;
+       rec.flow_label    = priv->broadcast->mcmember.flow_label;
+       rec.hop_limit     = priv->broadcast->mcmember.hop_limit;

        mcast->mc = ib_sa_join_multicast(&ipoib_sa_client, priv->ca,
                                         priv->port, &rec,
-                                        IB_SA_MCMEMBER_REC_MGID        |
-                                        IB_SA_MCMEMBER_REC_PORT_GID    |
-                                        IB_SA_MCMEMBER_REC_PKEY        |
-                                        IB_SA_MCMEMBER_REC_JOIN_STATE,
+                                        comp_mask,
                                         GFP_ATOMIC,
                                         ipoib_mcast_sendonly_join_complete,
                                         mcast);

--
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

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

Reply via email to