summaryrefslogtreecommitdiffstats
path: root/signal-fix-up-rcu-wreckage.patch
blob: 5171fd5b245587b39fab14beddc3d8942b4d909e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Subject: signal-fix-up-rcu-wreckage.patch
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 22 Jul 2011 08:07:08 +0200

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 kernel/signal.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Index: linux-stable/kernel/signal.c
===================================================================
--- linux-stable.orig/kernel/signal.c
+++ linux-stable/kernel/signal.c
@@ -1394,12 +1394,12 @@ struct sighand_struct *__lock_task_sigha
 	struct sighand_struct *sighand;
 
 	for (;;) {
-		local_irq_save(*flags);
+		local_irq_save_nort(*flags);
 		rcu_read_lock();
 		sighand = rcu_dereference(tsk->sighand);
 		if (unlikely(sighand == NULL)) {
 			rcu_read_unlock();
-			local_irq_restore(*flags);
+			local_irq_restore_nort(*flags);
 			break;
 		}
 
@@ -1410,7 +1410,7 @@ struct sighand_struct *__lock_task_sigha
 		}
 		spin_unlock(&sighand->siglock);
 		rcu_read_unlock();
-		local_irq_restore(*flags);
+		local_irq_restore_nort(*flags);
 	}
 
 	return sighand;