aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib.h22
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c8
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_multicast.c22
3 files changed, 26 insertions, 26 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
index 285c143115c..fc16bced8e5 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib.h
+++ b/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -113,7 +113,27 @@ struct ipoib_pseudoheader {
113 u8 hwaddr[INFINIBAND_ALEN]; 113 u8 hwaddr[INFINIBAND_ALEN];
114}; 114};
115 115
116struct ipoib_mcast; 116/* Used for all multicast joins (broadcast, IPv4 mcast and IPv6 mcast) */
117struct ipoib_mcast {
118 struct ib_sa_mcmember_rec mcmember;
119 struct ib_sa_multicast *mc;
120 struct ipoib_ah *ah;
121
122 struct rb_node rb_node;
123 struct list_head list;
124
125 unsigned long created;
126 unsigned long backoff;
127
128 unsigned long flags;
129 unsigned char logcount;
130
131 struct list_head neigh_list;
132
133 struct sk_buff_head pkt_queue;
134
135 struct net_device *dev;
136};
117 137
118struct ipoib_rx_buf { 138struct ipoib_rx_buf {
119 struct sk_buff *skb; 139 struct sk_buff *skb;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 5f948b9a994..900335a36e4 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -468,9 +468,10 @@ static struct ipoib_path *path_rec_create(struct net_device *dev, void *gid)
468 INIT_LIST_HEAD(&path->neigh_list); 468 INIT_LIST_HEAD(&path->neigh_list);
469 469
470 memcpy(path->pathrec.dgid.raw, gid, sizeof (union ib_gid)); 470 memcpy(path->pathrec.dgid.raw, gid, sizeof (union ib_gid));
471 path->pathrec.sgid = priv->local_gid; 471 path->pathrec.sgid = priv->local_gid;
472 path->pathrec.pkey = cpu_to_be16(priv->pkey); 472 path->pathrec.pkey = cpu_to_be16(priv->pkey);
473 path->pathrec.numb_path = 1; 473 path->pathrec.numb_path = 1;
474 path->pathrec.traffic_class = priv->broadcast->mcmember.traffic_class;
474 475
475 return path; 476 return path;
476} 477}
@@ -491,6 +492,7 @@ static int path_rec_start(struct net_device *dev,
491 IB_SA_PATH_REC_DGID | 492 IB_SA_PATH_REC_DGID |
492 IB_SA_PATH_REC_SGID | 493 IB_SA_PATH_REC_SGID |
493 IB_SA_PATH_REC_NUMB_PATH | 494 IB_SA_PATH_REC_NUMB_PATH |
495 IB_SA_PATH_REC_TRAFFIC_CLASS |
494 IB_SA_PATH_REC_PKEY, 496 IB_SA_PATH_REC_PKEY,
495 1000, GFP_ATOMIC, 497 1000, GFP_ATOMIC,
496 path_rec_completion, 498 path_rec_completion,
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index aae367057a5..94a57097e2b 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -57,28 +57,6 @@ MODULE_PARM_DESC(mcast_debug_level,
57 57
58static DEFINE_MUTEX(mcast_mutex); 58static DEFINE_MUTEX(mcast_mutex);
59 59
60/* Used for all multicast joins (broadcast, IPv4 mcast and IPv6 mcast) */
61struct ipoib_mcast {
62 struct ib_sa_mcmember_rec mcmember;
63 struct ib_sa_multicast *mc;
64 struct ipoib_ah *ah;
65
66 struct rb_node rb_node;
67 struct list_head list;
68
69 unsigned long created;
70 unsigned long backoff;
71
72 unsigned long flags;
73 unsigned char logcount;
74
75 struct list_head neigh_list;
76
77 struct sk_buff_head pkt_queue;
78
79 struct net_device *dev;
80};
81
82struct ipoib_mcast_iter { 60struct ipoib_mcast_iter {
83 struct net_device *dev; 61 struct net_device *dev;
84 union ib_gid mgid; 62 union ib_gid mgid;