diff options
author | Christoph Hellwig <hch@lst.de> | 2010-03-10 15:22:51 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-12 15:52:38 -0800 |
commit | 1d8393171b1f6c30a889fd7cb16fc193f689923c (patch) | |
tree | f151b10950918700085bb7b4d4d905d54e7826f2 /arch/avr32/include/asm | |
parent | 440e6ca79aebdc274ce4c625a6f42c8bf3c7bc91 (diff) | |
download | blackbird-op-linux-1d8393171b1f6c30a889fd7cb16fc193f689923c.tar.gz blackbird-op-linux-1d8393171b1f6c30a889fd7cb16fc193f689923c.zip |
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/asm')
-rw-r--r-- | arch/avr32/include/asm/ptrace.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/avr32/include/asm/ptrace.h b/arch/avr32/include/asm/ptrace.h index 9e2d44f4e0fe..e53dd0d900f5 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) |