aboutsummaryrefslogtreecommitdiffstats
path: root/arch/avr32/include
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2010-03-10 15:22:51 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-12 15:52:38 -0800
commit1d8393171b1f6c30a889fd7cb16fc193f689923c (patch)
treef151b10950918700085bb7b4d4d905d54e7826f2 /arch/avr32/include
parent440e6ca79aebdc274ce4c625a6f42c8bf3c7bc91 (diff)
downloadkernel_samsung_tuna-1d8393171b1f6c30a889fd7cb16fc193f689923c.zip
kernel_samsung_tuna-1d8393171b1f6c30a889fd7cb16fc193f689923c.tar.gz
kernel_samsung_tuna-1d8393171b1f6c30a889fd7cb16fc193f689923c.tar.bz2
avr32: use generic ptrace_resume code
Use the generic ptrace_resume code for PTRACE_SYSCALL, PTRACE_CONT, PTRACE_KILL and PTRACE_SINGLESTEP. This implies defining arch_has_single_step in <asm/ptrace.h> and implementing the user_enable_single_step and user_disable_single_step functions, which also causes the breakpoint information to be cleared on fork, which could be considered a bug fix. Also the TIF_SYSCALL_TRACE thread flag is now cleared on PTRACE_KILL which it previously wasn't which is consistent with all architectures using the modern ptrace code. Currently avr32 doesn't implement any code to disable single stepping when one of the non-syscall requests is called which seems wrong, but I've left it as-is for now. Signed-off-by: Christoph Hellwig <hch@lst.de> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Roland McGrath <roland@redhat.com> Acked-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/avr32/include')
-rw-r--r--arch/avr32/include/asm/ptrace.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/avr32/include/asm/ptrace.h b/arch/avr32/include/asm/ptrace.h
index 9e2d44f..e53dd0d 100644
--- a/arch/avr32/include/asm/ptrace.h
+++ b/arch/avr32/include/asm/ptrace.h
@@ -124,6 +124,8 @@ struct pt_regs {
#include <asm/ocd.h>
+#define arch_has_single_step() (1)
+
#define arch_ptrace_attach(child) ocd_enable(child)
#define user_mode(regs) (((regs)->sr & MODE_MASK) == MODE_USER)