From: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]> Add some comments about the "uml-sysemu-fixes" patch of 2.6.10-mm1 (merged in 2.6.11-rc1).
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]> --- linux-2.6.11-paolo/arch/um/kernel/tt/tracer.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+) diff -puN arch/um/kernel/tt/tracer.c~uml-comment-fix-sysemu-tt arch/um/kernel/tt/tracer.c --- linux-2.6.11/arch/um/kernel/tt/tracer.c~uml-comment-fix-sysemu-tt 2005-01-13 01:56:56.494835760 +0100 +++ linux-2.6.11-paolo/arch/um/kernel/tt/tracer.c 2005-01-13 01:56:56.498835152 +0100 @@ -313,6 +313,15 @@ int tracer(int (*init_proc)(void *), voi sig = 0; op = do_proc_op(task, proc_id); switch(op){ + /* + * This is called when entering user mode; after + * this, we start intercepting syscalls. + * + * In fact, a process is started in kernel mode, + * so with is_tracing() == 0 (and that is reset + * when executing syscalls, since UML kernel has + * the right to do syscalls); + */ case OP_TRACE_ON: arch_leave_kernel(task, pid); tracing = 1; @@ -347,6 +356,11 @@ int tracer(int (*init_proc)(void *), voi continue; } tracing = 0; + /* local_using_sysemu has been already set + * below, since if we are here, is_tracing() on + * the traced task was 1, i.e. the process had + * already run through one iteration of the + * loop which executed a OP_TRACE_ON request.*/ do_syscall(task, pid, local_using_sysemu); sig = SIGUSR2; break; _ ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel