diff options
Diffstat (limited to 'drivers/infiniband/ulp/ipoib/ipoib_multicast.c')
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c index f7ff9dd66cda..20ebc6fd1bb9 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c | |||
@@ -262,21 +262,13 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast, | |||
262 | netif_tx_lock_bh(dev); | 262 | netif_tx_lock_bh(dev); |
263 | while (!skb_queue_empty(&mcast->pkt_queue)) { | 263 | while (!skb_queue_empty(&mcast->pkt_queue)) { |
264 | struct sk_buff *skb = skb_dequeue(&mcast->pkt_queue); | 264 | struct sk_buff *skb = skb_dequeue(&mcast->pkt_queue); |
265 | struct dst_entry *dst = skb_dst(skb); | ||
266 | struct neighbour *n = NULL; | ||
267 | 265 | ||
268 | netif_tx_unlock_bh(dev); | 266 | netif_tx_unlock_bh(dev); |
269 | 267 | ||
270 | skb->dev = dev; | 268 | skb->dev = dev; |
271 | if (dst) | ||
272 | n = dst_get_neighbour_noref_raw(dst); | ||
273 | if (!dst || !n) { | ||
274 | /* put pseudoheader back on for next time */ | ||
275 | skb_push(skb, sizeof (struct ipoib_pseudoheader)); | ||
276 | } | ||
277 | |||
278 | if (dev_queue_xmit(skb)) | 269 | if (dev_queue_xmit(skb)) |
279 | ipoib_warn(priv, "dev_queue_xmit failed to requeue packet\n"); | 270 | ipoib_warn(priv, "dev_queue_xmit failed to requeue packet\n"); |
271 | |||
280 | netif_tx_lock_bh(dev); | 272 | netif_tx_lock_bh(dev); |
281 | } | 273 | } |
282 | netif_tx_unlock_bh(dev); | 274 | netif_tx_unlock_bh(dev); |