[PATCH 10/11] x86_64: Dont do syscall exit tracing twice

From: Chris Wright
Date: Fri Jun 02 2006 - 15:47:40 EST


-stable review patch. If anyone has any objections, please let us know.
------------------

From: Andi Kleen <ak@xxxxxxx>

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 <ak@xxxxxxx>
Signed-off-by: Chris Wright <chrisw@xxxxxxxxxxxx>
---
arch/x86_64/kernel/entry.S | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)

--- linux-2.6.16.19.orig/arch/x86_64/kernel/entry.S
+++ linux-2.6.16.19/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

--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/