1 From e297aa4bdf801fafffea3c7de1e62763959acd77 Mon Sep 17 00:00:00 2001
2 From: Sven-Thorsten Dietrich <sdietrich@novell.com>
3 Date: Fri, 3 Jul 2009 08:30:35 -0500
4 Subject: [PATCH 041/366] infiniband: Mellanox IB driver patch use _nort()
7 Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT
10 Michael S. Tsirkin <mst@dev.mellanox.co.il> sayeth:
11 "Basically, if you just make spin_lock_irqsave (and spin_lock_irq) not disable
12 interrupts for non-raw spinlocks, I think all of infiniband will be fine without
15 Signed-off-by: Sven-Thorsten Dietrich <sven@thebigcorporation.com>
16 Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
19 drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 ++--
20 1 file changed, 2 insertions(+), 2 deletions(-)
22 diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
23 index 87799de..66cdd37 100644
24 --- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
25 +++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
26 @@ -857,7 +857,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
28 ipoib_dbg_mcast(priv, "restarting multicast task\n");
30 - local_irq_save(flags);
31 + local_irq_save_nort(flags);
33 spin_lock(&priv->lock);
35 @@ -939,7 +939,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
37 spin_unlock(&priv->lock);
38 netif_addr_unlock(dev);
39 - local_irq_restore(flags);
40 + local_irq_restore_nort(flags);
43 * make sure the in-flight joins have finished before we attempt