47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
|
From 7a5fb579f7b435cffa7e323f4be5a4d28a24e753 Mon Sep 17 00:00:00 2001
|
||
|
From: Sven-Thorsten Dietrich <sdietrich@novell.com>
|
||
|
Date: Fri, 3 Jul 2009 08:30:35 -0500
|
||
|
Subject: [PATCH 082/365] 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>
|
||
|
---
|
||
|
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 ++--
|
||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
|
||
|
index 8f79caedf905..982e97f52090 100644
|
||
|
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
|
||
|
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
|
||
|
@@ -904,7 +904,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
|
||
|
|
||
|
ipoib_dbg_mcast(priv, "restarting multicast task\n");
|
||
|
|
||
|
- local_irq_save(flags);
|
||
|
+ local_irq_save_nort(flags);
|
||
|
netif_addr_lock(dev);
|
||
|
spin_lock(&priv->lock);
|
||
|
|
||
|
@@ -986,7 +986,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
|
||
|
|
||
|
spin_unlock(&priv->lock);
|
||
|
netif_addr_unlock(dev);
|
||
|
- local_irq_restore(flags);
|
||
|
+ local_irq_restore_nort(flags);
|
||
|
|
||
|
/*
|
||
|
* make sure the in-flight joins have finished before we attempt
|
||
|
--
|
||
|
2.28.0
|
||
|
|