diff options
author | Sven-Thorsten Dietrich <sdietrich@novell.com> | 2009-07-03 09:30:35 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-07-21 16:56:46 -0400 |
commit | 343c8c9a395840f5f16557e0ab7d058cfcec9c23 (patch) | |
tree | cd41bc9341cb2a5e9726a1757d8f31ca0ef97bc1 /drivers/infiniband/ulp | |
parent | f21df1ea9bea1678a11be8501b2d5ae19f0d55f1 (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.c | 4 |
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) { |