aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2008-07-09 04:33:14 -0400
committerRoland McGrath <roland@redhat.com>2008-07-16 15:15:16 -0400
commit64f097331928b01d704047c1dbc738bb6d2a9bf9 (patch)
tree402fe071f26a9bbdbffdc98c2f592ff9eeb6a404 /include
parent6718d0d6da2749d3bff522e6057e97e6aa85e4d1 (diff)
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>
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86/thread_info.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/asm-x86/thread_info.h b/include/asm-x86/thread_info.h
index 895339d2bc0b..fb8d3cdf143e 100644
--- a/include/asm-x86/thread_info.h
+++ b/include/asm-x86/thread_info.h
@@ -124,7 +124,7 @@ struct thread_info {
124/* work to do on interrupt/exception return */ 124/* work to do on interrupt/exception return */
125#define _TIF_WORK_MASK \ 125#define _TIF_WORK_MASK \
126 (0x0000FFFF & \ 126 (0x0000FFFF & \
127 ~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP| \ 127 ~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT| \
128 _TIF_SECCOMP|_TIF_SYSCALL_EMU)) 128 _TIF_SECCOMP|_TIF_SYSCALL_EMU))
129 129
130/* work to do on any return to user space */ 130/* work to do on any return to user space */
@@ -132,7 +132,7 @@ struct thread_info {
132 132
133/* Only used for 64 bit */ 133/* Only used for 64 bit */
134#define _TIF_DO_NOTIFY_MASK \ 134#define _TIF_DO_NOTIFY_MASK \
135 (_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED) 135 (_TIF_SIGPENDING|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED)
136 136
137/* flags to check in __switch_to() */ 137/* flags to check in __switch_to() */
138#define _TIF_WORK_CTXSW \ 138#define _TIF_WORK_CTXSW \