提交 d19110ba 编写于 作者: L Linus Torvalds

Merge branch 'x86/ptrace-syscall-exit' of...

Merge branch 'x86/ptrace-syscall-exit' of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland

* 'x86/ptrace-syscall-exit' of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland:
  x86: ptrace: sysret path should reach syscall_trace_leave
...@@ -536,20 +536,13 @@ sysret_signal: ...@@ -536,20 +536,13 @@ sysret_signal:
bt $TIF_SYSCALL_AUDIT,%edx bt $TIF_SYSCALL_AUDIT,%edx
jc sysret_audit jc sysret_audit
#endif #endif
/* edx: work flags (arg3) */ /*
leaq -ARGOFFSET(%rsp),%rdi # &pt_regs -> arg1 * We have a signal, or exit tracing or single-step.
xorl %esi,%esi # oldset -> arg2 * These all wind up with the iret return path anyway,
SAVE_REST * so just join that path right now.
FIXUP_TOP_OF_STACK %r11 */
call do_notify_resume FIXUP_TOP_OF_STACK %r11, -ARGOFFSET
RESTORE_TOP_OF_STACK %r11 jmp int_check_syscall_exit_work
RESTORE_REST
movl $_TIF_WORK_MASK,%edi
/* Use IRET because user could have changed frame. This
works because ptregscall_common has called FIXUP_TOP_OF_STACK. */
DISABLE_INTERRUPTS(CLBR_NONE)
TRACE_IRQS_OFF
jmp int_with_check
badsys: badsys:
movq $-ENOSYS,RAX-ARGOFFSET(%rsp) movq $-ENOSYS,RAX-ARGOFFSET(%rsp)
...@@ -654,6 +647,7 @@ int_careful: ...@@ -654,6 +647,7 @@ int_careful:
int_very_careful: int_very_careful:
TRACE_IRQS_ON TRACE_IRQS_ON
ENABLE_INTERRUPTS(CLBR_NONE) ENABLE_INTERRUPTS(CLBR_NONE)
int_check_syscall_exit_work:
SAVE_REST SAVE_REST
/* Check for syscall exit trace */ /* Check for syscall exit trace */
testl $_TIF_WORK_SYSCALL_EXIT,%edx testl $_TIF_WORK_SYSCALL_EXIT,%edx
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册