diff options
| author | Andi Kleen <ak@suse.de> | 2006-05-30 16:48:03 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-05-30 23:31:06 -0400 |
| commit | 822ff019f72ae01baef1893e86735f1a5e36be7d (patch) | |
| tree | 55c5215329b85c1b682bb1845361055500219945 | |
| parent | 7ca97c6131dac9f06b1856a95a2ec89d43844286 (diff) | |
[PATCH] x86_64: Don't do syscall exit tracing twice
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@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | arch/x86_64/kernel/entry.S | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S index c946e4fe67a7..586b34c00c48 100644 --- a/arch/x86_64/kernel/entry.S +++ b/arch/x86_64/kernel/entry.S | |||
| @@ -281,12 +281,7 @@ tracesys: | |||
| 281 | ja 1f | 281 | ja 1f |
| 282 | movq %r10,%rcx /* fixup for C */ | 282 | movq %r10,%rcx /* fixup for C */ |
| 283 | call *sys_call_table(,%rax,8) | 283 | call *sys_call_table(,%rax,8) |
| 284 | movq %rax,RAX-ARGOFFSET(%rsp) | 284 | 1: movq %rax,RAX-ARGOFFSET(%rsp) |
| 285 | 1: SAVE_REST | ||
| 286 | movq %rsp,%rdi | ||
| 287 | call syscall_trace_leave | ||
| 288 | RESTORE_TOP_OF_STACK %rbx | ||
| 289 | RESTORE_REST | ||
| 290 | /* Use IRET because user could have changed frame */ | 285 | /* Use IRET because user could have changed frame */ |
| 291 | jmp int_ret_from_sys_call | 286 | jmp int_ret_from_sys_call |
| 292 | CFI_ENDPROC | 287 | CFI_ENDPROC |
