aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core
diff options
context:
space:
mode:
authorYossi Etigin <yosefe@Voltaire.COM>2009-04-01 16:55:32 -0400
committerRoland Dreier <rolandd@cisco.com>2009-04-01 16:55:32 -0400
commit84adeee9aaa0d81712de1e0ea74caed3398e4a1d (patch)
tree2493682afc1efb9053c60883e68a4e30ded2eb38 /drivers/infiniband/core
parent5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a (diff)
RDMA/cma: Use rate from IPoIB broadcast when joining IPoIB multicast groups
When joining an IPoIB multicast group, use the same rate as in the broadcast group. Otherwise, if the RDMA CM creates this group before IPoIB does, it might get a different rate. This will cause IPoIB to fail joining to the same group later on, because IPoIB uses strict rate selection. Signed-off-by: Yossi Etigin <yosefe@voltaire.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r--drivers/infiniband/core/cma.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 2a2e50871b40..3f9c03a36571 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -2713,6 +2713,10 @@ static int cma_join_ib_multicast(struct rdma_id_private *id_priv,
2713 IB_SA_MCMEMBER_REC_FLOW_LABEL | 2713 IB_SA_MCMEMBER_REC_FLOW_LABEL |
2714 IB_SA_MCMEMBER_REC_TRAFFIC_CLASS; 2714 IB_SA_MCMEMBER_REC_TRAFFIC_CLASS;
2715 2715
2716 if (id_priv->id.ps == RDMA_PS_IPOIB)
2717 comp_mask |= IB_SA_MCMEMBER_REC_RATE |
2718 IB_SA_MCMEMBER_REC_RATE_SELECTOR;
2719
2716 mc->multicast.ib = ib_sa_join_multicast(&sa_client, id_priv->id.device, 2720 mc->multicast.ib = ib_sa_join_multicast(&sa_client, id_priv->id.device,
2717 id_priv->id.port_num, &rec, 2721 id_priv->id.port_num, &rec,
2718 comp_mask, GFP_KERNEL, 2722 comp_mask, GFP_KERNEL,