From: Andi Kleen Date: Thu, 1 Jun 2006 01:26:58 +0000 (+0200) Subject: [PATCH] x86_64: Don't do syscall exit tracing twice X-Git-Tag: v2.6.16.20~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d989306d6ac532795e225ad5303dfe4e4a81f51e;p=thirdparty%2Fkernel%2Fstable.git [PATCH] x86_64: Don't do syscall exit tracing twice This fixes a regression from the earlier DOS fix for non canonical IRET addresses. It broke UML. int_ret_from_syscall already does syscall exit tracing, so no need to do it again in the caller. This caused problems for UML and some other special programs doing syscall interception. Signed-off-by: Andi Kleen Signed-off-by: Chris Wright Signed-off-by: Greg Kroah-Hartman --- diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S index ab6e44dcd1e96..97583bb9122d9 100644 --- a/arch/x86_64/kernel/entry.S +++ b/arch/x86_64/kernel/entry.S @@ -281,12 +281,7 @@ tracesys: ja 1f movq %r10,%rcx /* fixup for C */ call *sys_call_table(,%rax,8) - movq %rax,RAX-ARGOFFSET(%rsp) -1: SAVE_REST - movq %rsp,%rdi - call syscall_trace_leave - RESTORE_TOP_OF_STACK %rbx - RESTORE_REST +1: movq %rax,RAX-ARGOFFSET(%rsp) /* Use IRET because user could have changed frame */ jmp int_ret_from_sys_call CFI_ENDPROC