From ffc2989fae24e4ac1d709560ae7fa9ee115be1cb Mon Sep 17 00:00:00 2001 From: "chrisw@osdl.org" Date: Wed, 16 Mar 2005 12:15:08 -0800 Subject: [PATCH] [PATCH] add tasklist-left-locked-fix.patch --- queue/tasklist-left-locked-fix.patch | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 queue/tasklist-left-locked-fix.patch diff --git a/queue/tasklist-left-locked-fix.patch b/queue/tasklist-left-locked-fix.patch new file mode 100644 index 00000000000..5560f4a0060 --- /dev/null +++ b/queue/tasklist-left-locked-fix.patch @@ -0,0 +1,23 @@ +Date: Wed, 16 Mar 2005 19:37:45 +0000 (GMT) +From: Hugh Dickins +To: stable@kernel.org +Cc: Andrew Morton , Roland McGrath +Subject: [PATCH] tasklist left locked + +On 4-way SMP, about one reboot in twenty hangs while killing processes: +exit needs exclusive tasklist_lock, but something still holds read_lock. +do_signal_stop race case misses unlock, and fixing it fixes the symptom. + +Signed-off-by: Hugh Dickins +Signed-off-by: Chris Wright + +--- 2.6.11/kernel/signal.c 2005-03-02 07:38:56.000000000 +0000 ++++ linux/kernel/signal.c 2005-03-16 18:10:17.000000000 +0000 +@@ -1728,6 +1728,7 @@ do_signal_stop(int signr) + * with another processor delivering a stop signal, + * then the SIGCONT that wakes us up should clear it. + */ ++ read_unlock(&tasklist_lock); + return 0; + } + -- 2.47.3