diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2009-05-19 09:38:01 -0400 |
---|---|---|
committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2009-12-04 15:22:35 -0500 |
commit | f195e2bff3000b8bc251ee6f685e0f027eec6f25 (patch) | |
tree | 6a872faedca9f07af26b7ba90551258a10a3bd94 /arch/m68k/kernel/entry.S | |
parent | faa47b466935e73251b18b17d51455b06ed65764 (diff) |
m68k: ptrace fixes
This fixes the following issues in ptrace:
- when single stepping into the signal handler stop at the first insn of
the handler
- handle non-zero stkadj when accessing pc and sr in ptregs
- correctly handle PT_SR in PTRACE_POKEUSR
- report -EIO when trying to read unknown offset in PTRACE_PEEKUSR
Additionally, the handling of the special case that PT_SR accesses a 16
bit word instead of a 32 bit word has been moved into get_reg/put_reg.
Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Diffstat (limited to 'arch/m68k/kernel/entry.S')
-rw-r--r-- | arch/m68k/kernel/entry.S | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S index c5b33634c980..77fc7c16bf48 100644 --- a/arch/m68k/kernel/entry.S +++ b/arch/m68k/kernel/entry.S | |||
@@ -179,7 +179,11 @@ do_signal_return: | |||
179 | addql #8,%sp | 179 | addql #8,%sp |
180 | RESTORE_SWITCH_STACK | 180 | RESTORE_SWITCH_STACK |
181 | addql #4,%sp | 181 | addql #4,%sp |
182 | jbra resume_userspace | 182 | tstl %d0 |
183 | jeq resume_userspace | ||
184 | | when single stepping into handler stop at the first insn | ||
185 | btst #6,%curptr@(TASK_INFO+TINFO_FLAGS+2) | ||
186 | jeq resume_userspace | ||
183 | 187 | ||
184 | do_delayed_trace: | 188 | do_delayed_trace: |
185 | bclr #7,%sp@(PT_OFF_SR) | clear trace bit in SR | 189 | bclr #7,%sp@(PT_OFF_SR) | clear trace bit in SR |