aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386
diff options
context:
space:
mode:
authorPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>2005-09-03 18:57:22 -0400
committerLinus Torvalds <torvalds@evo.osdl.org>2005-09-05 03:06:20 -0400
commit640aa46e25922a00b805e6b0d0b5181ad9cf736a (patch)
treeb8551775b41651905d7de27331eea1dd92c0c4d2 /arch/i386
parentab1c23c24471c760c573f4fb0dd78e166ddfd844 (diff)
[PATCH] uml: SYSEMU: slight cleanup and speedup
As a follow-up to "UML Support - Ptrace: adds the host SYSEMU support, for UML and general usage" (i.e. uml-support-* in current mm). Avoid unconditionally jumping to work_pending and code copying, just reuse the already existing resume_userspace path. One interesting note, from Charles P. Wright, suggested that the API is improvable with no downsides for UML (except that it will have to support yet another host API, since dropping support for the current API, for UML, is not reasonable from users' point of view). Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> CC: Charles P. Wright <cwright@cs.sunysb.edu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386')
-rw-r--r--arch/i386/kernel/entry.S8
1 files changed, 1 insertions, 7 deletions
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S
index 9a47723469c6..abb909793efc 100644
--- a/arch/i386/kernel/entry.S
+++ b/arch/i386/kernel/entry.S
@@ -339,18 +339,12 @@ syscall_trace_entry:
339 xorl %edx,%edx 339 xorl %edx,%edx
340 call do_syscall_trace 340 call do_syscall_trace
341 cmpl $0, %eax 341 cmpl $0, %eax
342 jne syscall_skip # ret != 0 -> running under PTRACE_SYSEMU, 342 jne resume_userspace # ret != 0 -> running under PTRACE_SYSEMU,
343 # so must skip actual syscall 343 # so must skip actual syscall
344 movl ORIG_EAX(%esp), %eax 344 movl ORIG_EAX(%esp), %eax
345 cmpl $(nr_syscalls), %eax 345 cmpl $(nr_syscalls), %eax
346 jnae syscall_call 346 jnae syscall_call
347 jmp syscall_exit 347 jmp syscall_exit
348syscall_skip:
349 cli # make sure we don't miss an interrupt
350 # setting need_resched or sigpending
351 # between sampling and the iret
352 movl TI_flags(%ebp), %ecx
353 jmp work_pending
354 348
355 # perform syscall exit tracing 349 # perform syscall exit tracing
356 ALIGN 350 ALIGN