From: Jeff Dike <[EMAIL PROTECTED]>
Date: Fri, 25 Apr 2008 13:56:06 -0400
> Restructure the stub management code to make it simpler.
> 
> syscall_stub_done is extracted from do_syscall_stub.
> 
> The counters are gone since I never looked at them.
> 
> The common code in run_syscall_stub and syscall_stub_data is extracted
> into flush_syscalls.
> 
> Signed-off-by: Jeff Dike <[EMAIL PROTECTED]>
> ---
>  arch/um/os-Linux/skas/mem.c |  162 
> +++++++++++++++++++++++---------------------
>  1 file changed, 85 insertions(+), 77 deletions(-)
> 
> Index: linux-2.6-git/arch/um/os-Linux/skas/mem.c
> ===================================================================
> --- linux-2.6-git.orig/arch/um/os-Linux/skas/mem.c    2008-04-25 
> 11:36:59.000000000 -0400
> +++ linux-2.6-git/arch/um/os-Linux/skas/mem.c 2008-04-25 11:39:07.000000000 
> -0400
> @@ -40,35 +40,69 @@ static unsigned long syscall_regs[MAX_RE
>  
>  static int __init init_syscall_regs(void)
>  {
> +     unsigned long *stub_entry;
> +
>       get_safe_registers(syscall_regs);
> +     stub_entry = &batch_syscall_stub;
> +
>       syscall_regs[REGS_IP_INDEX] = STUB_CODE +
> -             ((unsigned long) &batch_syscall_stub -
> +             ((unsigned long) stub_entry -
>                (unsigned long) &__syscall_stub_start);
>       return 0;
>  }
>  
>  __initcall(init_syscall_regs);
>  
> -extern int proc_mm;
> +static int syscall_stub_done(unsigned long stack)
> +{
> +     unsigned long *syscall, *data, offset;
> +     int ret, n;
> +
> +     /*
> +      * When the stub stops, we find the following values on the
> +      * beginning of the stack:
> +      * (long) return_value
> +      * (long) offset to failed sycall data (0 if no error)
> +      */
> +     ret = *((unsigned long *) stack);


I am afraid the value will be truncated on 64bit machine, since
'ret' is 'int' while 'stack' points to an 'unsigned long'.

Is this expected?

Thanks.

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to