diff options
-rw-r--r-- | arch/i386/kernel/entry.S | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S index b1f16ee65e4d..3c3c220488c9 100644 --- a/arch/i386/kernel/entry.S +++ b/arch/i386/kernel/entry.S | |||
@@ -367,10 +367,6 @@ ENTRY(system_call) | |||
367 | CFI_ADJUST_CFA_OFFSET 4 | 367 | CFI_ADJUST_CFA_OFFSET 4 |
368 | SAVE_ALL | 368 | SAVE_ALL |
369 | GET_THREAD_INFO(%ebp) | 369 | GET_THREAD_INFO(%ebp) |
370 | testl $TF_MASK,PT_EFLAGS(%esp) | ||
371 | jz no_singlestep | ||
372 | orl $_TIF_SINGLESTEP,TI_flags(%ebp) | ||
373 | no_singlestep: | ||
374 | # system call tracing in operation / emulation | 370 | # system call tracing in operation / emulation |
375 | /* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */ | 371 | /* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */ |
376 | testw $(_TIF_SYSCALL_EMU|_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT),TI_flags(%ebp) | 372 | testw $(_TIF_SYSCALL_EMU|_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT),TI_flags(%ebp) |
@@ -385,6 +381,10 @@ syscall_exit: | |||
385 | # setting need_resched or sigpending | 381 | # setting need_resched or sigpending |
386 | # between sampling and the iret | 382 | # between sampling and the iret |
387 | TRACE_IRQS_OFF | 383 | TRACE_IRQS_OFF |
384 | testl $TF_MASK,PT_EFLAGS(%esp) # If tracing set singlestep flag on exit | ||
385 | jz no_singlestep | ||
386 | orl $_TIF_SINGLESTEP,TI_flags(%ebp) | ||
387 | no_singlestep: | ||
388 | movl TI_flags(%ebp), %ecx | 388 | movl TI_flags(%ebp), %ecx |
389 | testw $_TIF_ALLWORK_MASK, %cx # current->work | 389 | testw $_TIF_ALLWORK_MASK, %cx # current->work |
390 | jne syscall_exit_work | 390 | jne syscall_exit_work |