summaryrefslogtreecommitdiffstats
path: root/kernel/signal.c
diff options
context:
space:
mode:
authorOleg Nesterov2008-07-25 10:47:36 +0200
committerLinus Torvalds2008-07-25 19:53:39 +0200
commit364d3c13c17f45da6d638011078d4c4d3070d719 (patch)
tree2e6215dd458010cd92786ac7d67053c5d5171c74 /kernel/signal.c
parentinclude/asm/ptrace.h userspace headers cleanup (diff)
downloadkernel-qcow2-linux-364d3c13c17f45da6d638011078d4c4d3070d719.tar.gz
kernel-qcow2-linux-364d3c13c17f45da6d638011078d4c4d3070d719.tar.xz
kernel-qcow2-linux-364d3c13c17f45da6d638011078d4c4d3070d719.zip
ptrace: give more respect to SIGKILL
ptrace_stop() has some complicated checks to prevent the scheduling in the TASK_TRACED state with the pending SIGKILL, but these checks are racy, and they depend on arch_ptrace_stop_needed(). This patch assumes that the traced task should die asap if it was killed by SIGKILL, in that case schedule()->signal_pending_state() has no reason to ignore the TASK_WAKEKILL part of TASK_TRACED, and we can kill this nasty special case. Note: do_exit()->ptrace_notify() is special, the killed task can already dequeue SIGKILL at this point. Another indication that fatal_signal_pending() is not exactly right. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Cc: Ingo Molnar <mingo@elte.hu> Cc: Matthew Wilcox <matthew@wil.cx> Cc: Roland McGrath <roland@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/signal.c')
0 files changed, 0 insertions, 0 deletions