]> err.no Git - linux-2.6/commit
x86 ptrace: unify TIF_SINGLESTEP
authorRoland McGrath <roland@redhat.com>
Wed, 9 Jul 2008 08:33:14 +0000 (01:33 -0700)
committerRoland McGrath <roland@redhat.com>
Wed, 16 Jul 2008 19:15:16 +0000 (12:15 -0700)
commit64f097331928b01d704047c1dbc738bb6d2a9bf9
tree402fe071f26a9bbdbffdc98c2f592ff9eeb6a404
parent6718d0d6da2749d3bff522e6057e97e6aa85e4d1
x86 ptrace: unify TIF_SINGLESTEP

This unifies the treatment of TIF_SINGLESTEP on i386 and x86_64.
The bit is now excluded from _TIF_WORK_MASK on i386 as it has been
on x86_64.  This means the do_notify_resume() path using it is never
used, so TIF_SINGLESTEP is not cleared on returning to user mode.

Both now leave TIF_SINGLESTEP set when returning to user, so that
it's already set on an int $0x80 system call entry.  This removes
the need for testing TF on the system_call path.  Doing it this way
fixes the regression for PTRACE_SINGLESTEP into a sigreturn syscall,
introduced by commit 1e2e99f0e4aa6363e8515ed17011c210c8f1b52a.

The clear_TF_reenable case that sets TIF_SINGLESTEP can only happen
on a non-exception kernel entry, i.e. sysenter/syscall instruction.
That will always get to the syscall exit tracing path.

Signed-off-by: Roland McGrath <roland@redhat.com>
arch/x86/kernel/entry_32.S
arch/x86/kernel/signal_32.c
arch/x86/kernel/signal_64.c
include/asm-x86/thread_info.h