aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/ulp
diff options
context:
space:
mode:
authorSven-Thorsten Dietrich <sdietrich@novell.com>2009-07-03 09:30:35 -0400
committerThomas Gleixner <tglx@linutronix.de>2009-07-21 16:56:46 -0400
commit343c8c9a395840f5f16557e0ab7d058cfcec9c23 (patch)
treecd41bc9341cb2a5e9726a1757d8f31ca0ef97bc1 /drivers/infiniband/ulp
parentf21df1ea9bea1678a11be8501b2d5ae19f0d55f1 (diff)
infiniband: Mellanox IB driver patch use _nort() primitives
Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT Kernel. Michael S. Tsirkin <mst@dev.mellanox.co.il> sayeth: "Basically, if you just make spin_lock_irqsave (and spin_lock_irq) not disable interrupts for non-raw spinlocks, I think all of infiniband will be fine without changes." Signed-off-by: Sven-Thorsten Dietrich <sven@thebigcorporation.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/infiniband/ulp')
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_multicast.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index a0e97532e714..1dc64467bae6 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -773,7 +773,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
773 773
774 ipoib_mcast_stop_thread(dev, 0); 774 ipoib_mcast_stop_thread(dev, 0);
775 775
776 local_irq_save(flags); 776 local_irq_save_nort(flags);
777 netif_addr_lock(dev); 777 netif_addr_lock(dev);
778 spin_lock(&priv->lock); 778 spin_lock(&priv->lock);
779 779
@@ -852,7 +852,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
852 852
853 spin_unlock(&priv->lock); 853 spin_unlock(&priv->lock);
854 netif_addr_unlock(dev); 854 netif_addr_unlock(dev);
855 local_irq_restore(flags); 855 local_irq_restore_nort(flags);
856 856
857 /* We have to cancel outside of the spinlock */ 857 /* We have to cancel outside of the spinlock */
858 list_for_each_entry_safe(mcast, tmcast, &remove_list, list) { 858 list_for_each_entry_safe(mcast, tmcast, &remove_list, list) {