Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d19110ba authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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
parents 433c24ed b60e714d
Loading
Loading
Loading
Loading
+8 −14
Original line number Diff line number Diff line
@@ -536,20 +536,13 @@ sysret_signal:
	bt $TIF_SYSCALL_AUDIT,%edx
	jc sysret_audit
#endif
	/* edx:	work flags (arg3) */
	leaq -ARGOFFSET(%rsp),%rdi # &pt_regs -> arg1
	xorl %esi,%esi # oldset -> arg2
	SAVE_REST
	FIXUP_TOP_OF_STACK %r11
	call do_notify_resume
	RESTORE_TOP_OF_STACK %r11
	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
	/*
	 * We have a signal, or exit tracing or single-step.
	 * These all wind up with the iret return path anyway,
	 * so just join that path right now.
	 */
	FIXUP_TOP_OF_STACK %r11, -ARGOFFSET
	jmp int_check_syscall_exit_work

badsys:
	movq $-ENOSYS,RAX-ARGOFFSET(%rsp)
@@ -654,6 +647,7 @@ int_careful:
int_very_careful:
	TRACE_IRQS_ON
	ENABLE_INTERRUPTS(CLBR_NONE)
int_check_syscall_exit_work:
	SAVE_REST
	/* Check for syscall exit trace */
	testl $_TIF_WORK_SYSCALL_EXIT,%edx