]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
[PATCH] add tasklist-left-locked-fix.patch
authorchrisw@osdl.org <chrisw@osdl.org>
Wed, 16 Mar 2005 20:15:08 +0000 (12:15 -0800)
committerGreg KH <gregkh@suse.de>
Thu, 12 May 2005 05:10:43 +0000 (22:10 -0700)
queue/tasklist-left-locked-fix.patch [new file with mode: 0644]

diff --git a/queue/tasklist-left-locked-fix.patch b/queue/tasklist-left-locked-fix.patch
new file mode 100644 (file)
index 0000000..5560f4a
--- /dev/null
@@ -0,0 +1,23 @@
+Date: Wed, 16 Mar 2005 19:37:45 +0000 (GMT)
+From: Hugh Dickins <hugh@veritas.com>
+To: stable@kernel.org
+Cc: Andrew Morton <akpm@osdl.org>, Roland McGrath <roland@redhat.com>
+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 <hugh@veritas.com>
+Signed-off-by: Chris Wright <chrisw@osdl.org>
+
+--- 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;
+               }