aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_multicast.c6
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 ec41c8f46c72..216471fa01cc 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -820,7 +820,8 @@ void ipoib_mcast_restart_task(void *dev_ptr)
820 820
821 ipoib_mcast_stop_thread(dev, 0); 821 ipoib_mcast_stop_thread(dev, 0);
822 822
823 spin_lock_irqsave(&dev->xmit_lock, flags); 823 local_irq_save(flags);
824 netif_tx_lock(dev);
824 spin_lock(&priv->lock); 825 spin_lock(&priv->lock);
825 826
826 /* 827 /*
@@ -895,7 +896,8 @@ void ipoib_mcast_restart_task(void *dev_ptr)
895 } 896 }
896 897
897 spin_unlock(&priv->lock); 898 spin_unlock(&priv->lock);
898 spin_unlock_irqrestore(&dev->xmit_lock, flags); 899 netif_tx_unlock(dev);
900 local_irq_restore(flags);
899 901
900 /* We have to cancel outside of the spinlock */ 902 /* We have to cancel outside of the spinlock */
901 list_for_each_entry_safe(mcast, tmcast, &remove_list, list) { 903 list_for_each_entry_safe(mcast, tmcast, &remove_list, list) {