From: chrisw@osdl.org Date: Wed, 16 Mar 2005 20:15:08 +0000 (-0800) Subject: [PATCH] add tasklist-left-locked-fix.patch X-Git-Tag: v2.6.11.9~40 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ffc2989fae24e4ac1d709560ae7fa9ee115be1cb;p=thirdparty%2Fkernel%2Fstable-queue.git [PATCH] add 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; + } +