diff options
Diffstat (limited to 'drivers/infiniband/ulp/ipoib/ipoib_multicast.c')
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c index 8ec99bdea76b..5580ab0b5781 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c | |||
@@ -756,9 +756,11 @@ void ipoib_mcast_send(struct net_device *dev, u8 *daddr, struct sk_buff *skb) | |||
756 | __ipoib_mcast_add(dev, mcast); | 756 | __ipoib_mcast_add(dev, mcast); |
757 | list_add_tail(&mcast->list, &priv->multicast_list); | 757 | list_add_tail(&mcast->list, &priv->multicast_list); |
758 | } | 758 | } |
759 | if (skb_queue_len(&mcast->pkt_queue) < IPOIB_MAX_MCAST_QUEUE) | 759 | if (skb_queue_len(&mcast->pkt_queue) < IPOIB_MAX_MCAST_QUEUE) { |
760 | /* put pseudoheader back on for next time */ | ||
761 | skb_push(skb, sizeof(struct ipoib_pseudo_header)); | ||
760 | skb_queue_tail(&mcast->pkt_queue, skb); | 762 | skb_queue_tail(&mcast->pkt_queue, skb); |
761 | else { | 763 | } else { |
762 | ++dev->stats.tx_dropped; | 764 | ++dev->stats.tx_dropped; |
763 | dev_kfree_skb_any(skb); | 765 | dev_kfree_skb_any(skb); |
764 | } | 766 | } |