aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBhavesh P. Davda <bhavesh@avaya.com>2005-08-17 14:26:33 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-08-17 15:52:04 -0400
commitdd12f48d4e8774415b528d3991ae47c28f26e1ac (patch)
treed8083c3415d540adb7983bd23a80fb8420fa8414
parentade6648b3b11a5d81f6f28135193ab6d85d621db (diff)
[PATCH] NPTL signal delivery deadlock fix
This bug is quite subtle and only happens in a very interesting situation where a real-time threaded process is in the middle of a coredump when someone whacks it with a SIGKILL. However, this deadlock leaves the system pretty hosed and you have to reboot to recover. Not good for real-time priority-preemption applications like our telephony application, with 90+ real-time (SCHED_FIFO and SCHED_RR) processes, many of them multi-threaded, interacting with each other for high volume call processing. Acked-by: Roland McGrath <roland@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--kernel/signal.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/signal.c b/kernel/signal.c
index ca1186eef938..d282fea81138 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -692,7 +692,7 @@ static void handle_stop_signal(int sig, struct task_struct *p)
692{ 692{
693 struct task_struct *t; 693 struct task_struct *t;
694 694
695 if (p->flags & SIGNAL_GROUP_EXIT) 695 if (p->signal->flags & SIGNAL_GROUP_EXIT)
696 /* 696 /*
697 * The process is in the middle of dying already. 697 * The process is in the middle of dying already.
698 */ 698 */