RDMA/cma: Use consistent component mask for IPoIB port space multicast joins
authorDotan Barak <dotanb@dev.mellanox.co.il>
Thu, 30 Aug 2012 09:09:55 +0000 (09:09 +0000)
committerRoland Dreier <roland@purestorage.com>
Mon, 1 Oct 2012 03:31:47 +0000 (20:31 -0700)
CMA multicast joins for the IPoIB port space need to use the same
component mask used by the ipoib driver.  Otherwise, it's possible for
the CMA to create a group to which a join made by ipoib will fail, or
vise-versa.  Some of the component mask fields set by ipoib weren't
set by the CMA, fix that.

Signed-off-by: Dotan Barak <dotanb@dev.mellanox.co.il>
Reviewed-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Acked-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/core/cma.c

index 7172559ce0c1486042a0d5396d8898a10cd31663..26b37603dcf11b63a7ae396d93533fed8a2a09cd 100644 (file)
@@ -3058,7 +3058,10 @@ static int cma_join_ib_multicast(struct rdma_id_private *id_priv,
 
        if (id_priv->id.ps == RDMA_PS_IPOIB)
                comp_mask |= IB_SA_MCMEMBER_REC_RATE |
-                            IB_SA_MCMEMBER_REC_RATE_SELECTOR;
+                            IB_SA_MCMEMBER_REC_RATE_SELECTOR |
+                            IB_SA_MCMEMBER_REC_MTU_SELECTOR |
+                            IB_SA_MCMEMBER_REC_MTU |
+                            IB_SA_MCMEMBER_REC_HOP_LIMIT;
 
        mc->multicast.ib = ib_sa_join_multicast(&sa_client, id_priv->id.device,
                                                id_priv->id.port_num, &rec,