From: "Andi Kleen" 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: Andrew Morton --- arch/x86_64/kernel/entry.S | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff -puN arch/x86_64/kernel/entry.S~x86_64-dont-do-syscall-exit-tracing-twice arch/x86_64/kernel/entry.S --- devel/arch/x86_64/kernel/entry.S~x86_64-dont-do-syscall-exit-tracing-twice 2006-05-29 14:16:26.000000000 -0700 +++ devel-akpm/arch/x86_64/kernel/entry.S 2006-05-29 14:16:26.000000000 -0700 @@ -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 _