summaryrefslogtreecommitdiffstats
path: root/kernel/ptrace.c
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@redhat.com>2013-08-06 17:43:37 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2013-08-06 13:16:32 -0700
commit35114fcbe0b9b0fa3f6653a2a8e4c6b8a9f8cc2d (patch)
tree520b0ab0c8aa28c808eabb81e979f01749811018 /kernel/ptrace.c
parent1853a65ec5bd07c18f4a43e6709486c81400afa6 (diff)
downloadop-kernel-dev-35114fcbe0b9b0fa3f6653a2a8e4c6b8a9f8cc2d.zip
op-kernel-dev-35114fcbe0b9b0fa3f6653a2a8e4c6b8a9f8cc2d.tar.gz
Revert "ptrace: PTRACE_DETACH should do flush_ptrace_hw_breakpoint(child)"
This reverts commit fab840fc2d542fabcab903db8e03589a6702ba5f. This commit even has the test-case to prove that the tracee can be killed by SIGTRAP if the debugger does not remove the breakpoints before PTRACE_DETACH. However, this is exactly what wineserver deliberately does, set_thread_context() calls PTRACE_ATTACH + PTRACE_DETACH just for PTRACE_POKEUSER(DR*) in between. So we should revert this fix and document that PTRACE_DETACH should keep the breakpoints. Reported-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/ptrace.c')
-rw-r--r--kernel/ptrace.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 4041f57..a146ee3 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -469,7 +469,6 @@ static int ptrace_detach(struct task_struct *child, unsigned int data)
/* Architecture-specific hardware disable .. */
ptrace_disable(child);
clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
- flush_ptrace_hw_breakpoint(child);
write_lock_irq(&tasklist_lock);
/*
OpenPOWER on IntegriCloud