qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Swap only altered elements of the grouplist


From: Riku Voipio
Subject: Re: [Qemu-devel] [PATCH] Swap only altered elements of the grouplist
Date: Fri, 19 Sep 2008 16:59:30 +0300
User-agent: Mutt/1.5.11+cvs20060126

On Thu, Sep 18, 2008 at 06:07:01PM +0300, Kirill A. Shutemov wrote:
> getgroups returns the number of supplementary group IDs is returned.
> So it's unnessary to swap the entire array. It can dramatically speed up
> the syscall: on recent Linux kernel NGROUPS_MAX=65536.

looks ok too.

> Signed-off-by: Kirill A. Shutemov <address@hidden>
> ---
>  linux-user/syscall.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 948ea3b..ba7cde1 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -5253,7 +5253,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long 
> arg1,
>                  target_grouplist = lock_user(VERIFY_WRITE, arg2, gidsetsize 
> * 2, 0);
>                  if (!target_grouplist)
>                      goto efault;
> -                for(i = 0;i < gidsetsize; i++)
> +                for(i = 0;i < ret; i++)
>                      target_grouplist[i] = tswap16(grouplist[i]);
>                  unlock_user(target_grouplist, arg2, gidsetsize * 2);
>              }
> @@ -5407,7 +5407,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long 
> arg1,
>                      ret = -TARGET_EFAULT;
>                      goto fail;
>                  }
> -                for(i = 0;i < gidsetsize; i++)
> +                for(i = 0;i < ret; i++)
>                      target_grouplist[i] = tswap32(grouplist[i]);
>                  unlock_user(target_grouplist, arg2, gidsetsize * 4);
>              }
> -- 
> 1.5.6.5.GIT
> 
> 

-- 
"rm -rf" only sounds scary if you don't have backups




reply via email to

[Prev in Thread] Current Thread [Next in Thread]