projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
Merge branch 'signal-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/rw...
[linux-2.6-block.git]
/
kernel
/
signal.c
diff --git
a/kernel/signal.c
b/kernel/signal.c
index 5c60200403882f011ce64c2476f6a8d0f78af3dd..8f0876f9f6dd5deb400a1f3ef071b66da877a363 100644
(file)
--- a/
kernel/signal.c
+++ b/
kernel/signal.c
@@
-1263,6
+1263,10
@@
struct sighand_struct *__lock_task_sighand(struct task_struct *tsk,
struct sighand_struct *sighand;
for (;;) {
+ /*
+ * Disable interrupts early to avoid deadlocks.
+ * See rcu_read_unlock() comment header for details.
+ */
local_irq_save(*flags);
rcu_read_lock();
sighand = rcu_dereference(tsk->sighand);