[PATCH 21/27] ptrace: generic PTRACE_SINGLEBLOCK

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Roland McGrath
Date: Sunday, November 25, 2007 - 3:06 pm

This makes ptrace_request handle PTRACE_SINGLEBLOCK along with
PTRACE_CONT et al.  The new generic code makes use of the
arch_has_block_step macro and generic entry points on machines
that define them.

Signed-off-by: Roland McGrath <roland@redhat.com>
---
 kernel/ptrace.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 309796a..2824726 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -373,6 +373,12 @@ static int ptrace_setsiginfo(struct task_struct *child, siginfo_t __user * data)
 #define is_singlestep(request)		0
 #endif
 
+#ifdef PTRACE_SINGLEBLOCK
+#define is_singleblock(request)		((request) == PTRACE_SINGLEBLOCK)
+#else
+#define is_singleblock(request)		0
+#endif
+
 #ifdef PTRACE_SYSEMU
 #define is_sysemu_singlestep(request)	((request) == PTRACE_SYSEMU_SINGLESTEP)
 #else
@@ -396,7 +402,11 @@ static int ptrace_resume(struct task_struct *child, long request, long data)
 		clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
 #endif
 
-	if (is_singlestep(request) || is_sysemu_singlestep(request)) {
+	if (is_singleblock(request)) {
+		if (unlikely(!arch_has_block_step()))
+			return -EIO;
+		user_enable_block_step(child);
+	} else if (is_singlestep(request) || is_sysemu_singlestep(request)) {
 		if (unlikely(!arch_has_single_step()))
 			return -EIO;
 		user_enable_single_step(child);
@@ -438,6 +448,9 @@ int ptrace_request(struct task_struct *child, long request,
 #ifdef PTRACE_SINGLESTEP
 	case PTRACE_SINGLESTEP:
 #endif
+#ifdef PTRACE_SINGLEBLOCK
+	case PTRACE_SINGLEBLOCK:
+#endif
 #ifdef PTRACE_SYSEMU
 	case PTRACE_SYSEMU:
 	case PTRACE_SYSEMU_SINGLESTEP:
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 01/27] ptrace: arch_has_single_step, Roland McGrath, (Sun Nov 25, 2:55 pm)
[PATCH 02/27] x86: segment selector macros, Roland McGrath, (Sun Nov 25, 2:58 pm)
[PATCH 03/27] x86: remove TRAP_FLAG, Roland McGrath, (Sun Nov 25, 2:58 pm)
[PATCH 04/27] x86: arch_has_single_step, Roland McGrath, (Sun Nov 25, 2:59 pm)
[PATCH 05/27] x86: single_step moved, Roland McGrath, (Sun Nov 25, 2:59 pm)
[PATCH 06/27] x86: single_step segment macros, Roland McGrath, (Sun Nov 25, 2:59 pm)
[PATCH 07/27] x86: single_step 0xf0, Roland McGrath, (Sun Nov 25, 3:00 pm)
[PATCH 08/27] x86: single_step: share code, Roland McGrath, (Sun Nov 25, 3:00 pm)
[PATCH 10/27] ptrace: generic resume, Roland McGrath, (Sun Nov 25, 3:01 pm)
[PATCH 11/27] x86-64: ptrace generic resume, Roland McGrath, (Sun Nov 25, 3:01 pm)
[PATCH 12/27] x86-32: ptrace generic resume, Roland McGrath, (Sun Nov 25, 3:01 pm)
[PATCH 13/27] powerpc: arch_has_single_step, Roland McGrath, (Sun Nov 25, 3:03 pm)
[PATCH 14/27] powerpc: ptrace generic resume, Roland McGrath, (Sun Nov 25, 3:04 pm)
[PATCH 15/27] x86-32 ptrace: use task_pt_regs, Roland McGrath, (Sun Nov 25, 3:04 pm)
[PATCH 16/27] x86-64 ptrace: use task_pt_regs, Roland McGrath, (Sun Nov 25, 3:04 pm)
[PATCH 17/27] x86-64 ptrace debugreg cleanup, Roland McGrath, (Sun Nov 25, 3:04 pm)
[PATCH 18/27] x86-64 ia32 ptrace debugreg cleanup, Roland McGrath, (Sun Nov 25, 3:05 pm)
[PATCH 19/27] x86-32 ptrace debugreg cleanup, Roland McGrath, (Sun Nov 25, 3:05 pm)
[PATCH 21/27] ptrace: generic PTRACE_SINGLEBLOCK, Roland McGrath, (Sun Nov 25, 3:06 pm)
[PATCH 22/27] x86: debugctlmsr constants, Roland McGrath, (Sun Nov 25, 3:06 pm)
[PATCH 23/27] x86: debugctlmsr kconfig, Roland McGrath, (Sun Nov 25, 3:08 pm)
[PATCH 24/27] x86: debugctlmsr context switch, Roland McGrath, (Sun Nov 25, 3:08 pm)
[PATCH 26/27] x86: debugctlmsr kprobes, Roland McGrath, (Sun Nov 25, 3:08 pm)
[PATCH 27/27] x86: PTRACE_SINGLEBLOCK, Roland McGrath, (Sun Nov 25, 3:08 pm)
Re: [PATCH 01/27] ptrace: arch_has_single_step, Christoph Hellwig, (Sun Nov 25, 3:22 pm)
Re: [PATCH 01/27] ptrace: arch_has_single_step, Roland McGrath, (Sun Nov 25, 3:59 pm)
Re: [PATCH 23/27] x86: debugctlmsr kconfig, Denys Vlasenko, (Sun Nov 25, 6:09 pm)
Re: [PATCH 23/27] x86: debugctlmsr kconfig, Roland McGrath, (Mon Nov 26, 12:51 am)
Re: [PATCH 23/27] x86: debugctlmsr kconfig, Roland McGrath, (Mon Nov 26, 1:06 am)
Re: [PATCH 23/27] x86: debugctlmsr kconfig, Denys Vlasenko, (Mon Nov 26, 3:52 pm)
Re: [PATCH 01/27] ptrace: arch_has_single_step, Andrew Morton, (Tue Nov 27, 1:53 am)
Re: [PATCH 01/27] ptrace: arch_has_single_step, Ingo Molnar, (Tue Nov 27, 3:38 am)
Re: [PATCH 01/27] ptrace: arch_has_single_step, Roland McGrath, (Tue Nov 27, 4:05 pm)
Re: [PATCH 01/27] ptrace: arch_has_single_step, Ingo Molnar, (Tue Nov 27, 4:58 pm)
Re: [PATCH 01/27] ptrace: arch_has_single_step, Roland McGrath, (Tue Nov 27, 5:08 pm)
Re: [PATCH 20/27] ptrace: arch_has_block_step, David Wilder, (Wed Nov 28, 4:39 pm)
Re: [PATCH 20/27] ptrace: arch_has_block_step, Roland McGrath, (Wed Nov 28, 4:58 pm)
Re: [PATCH 14/27] powerpc: ptrace generic resume, Srinivasa Ds, (Mon Dec 3, 1:12 am)