[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Swap only altered elements of the grouplist
From: |
Kirill A. Shutemov |
Subject: |
[Qemu-devel] [PATCH] Swap only altered elements of the grouplist |
Date: |
Mon, 8 Sep 2008 17:03:31 +0300 |
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.
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 9d8542d..8112a56 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5248,7 +5248,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);
}
@@ -5402,7 +5402,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
- [Qemu-devel] [PATCH] Fix vfork() syscall emulation, Kirill A. Shutemov, 2008/09/08
- [Qemu-devel] [PATCH] Fix getgroups() syscall emulation, Kirill A. Shutemov, 2008/09/08
- [Qemu-devel] [PATCH] Swap only altered elements of the grouplist,
Kirill A. Shutemov <=
- [Qemu-devel] [PATCH] Fix pread() and pwrite() syscall on ARM EABI, Kirill A. Shutemov, 2008/09/08
- [Qemu-devel] [PATCH] Implement syscall fstatat64(), Kirill A. Shutemov, 2008/09/08
- [Qemu-devel] [PATCH] Implement futimesat() syscall, Kirill A. Shutemov, 2008/09/08
- [Qemu-devel] [PATCH] Imaplement ioctls MTIOCTOP, MTIOCGET and MTIOCPOS, Kirill A. Shutemov, 2008/09/08
- [Qemu-devel] [PATCH] Introduce option -binfmt-misc-friendly, Kirill A. Shutemov, 2008/09/08
[Qemu-devel] Linux user emulator maintainer, Kirill A. Shutemov, 2008/09/13