mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
Add generic sys_old_select()
Add a generic implementation of the old select() syscall, which expects its argument in a memory block and switch all architectures over to use it. Signed-off-by: Christoph Hellwig <[email protected]> Cc: Ralf Baechle <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Cc: Paul Mundt <[email protected]> Cc: Jeff Dike <[email protected]> Cc: Hirokazu Takata <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Ingo Molnar <[email protected]> Reviewed-by: H. Peter Anvin <[email protected]> Cc: Al Viro <[email protected]> Cc: Arnd Bergmann <[email protected]> Cc: Heiko Carstens <[email protected]> Cc: Martin Schwidefsky <[email protected]> Cc: "Luck, Tony" <[email protected]> Cc: James Morris <[email protected]> Acked-by: Andreas Schwab <[email protected]> Acked-by: Russell King <[email protected]> Acked-by: Greg Ungerer <[email protected]> Acked-by: David Howells <[email protected]> Cc: Andreas Schwab <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
724ee626f3
commit
5d0e52830e
27 changed files with 52 additions and 152 deletions
18
fs/compat.c
18
fs/compat.c
|
|
@ -1795,6 +1795,24 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp,
|
|||
return ret;
|
||||
}
|
||||
|
||||
struct compat_sel_arg_struct {
|
||||
compat_ulong_t n;
|
||||
compat_uptr_t inp;
|
||||
compat_uptr_t outp;
|
||||
compat_uptr_t exp;
|
||||
compat_uptr_t tvp;
|
||||
};
|
||||
|
||||
asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg)
|
||||
{
|
||||
struct compat_sel_arg_struct a;
|
||||
|
||||
if (copy_from_user(&a, arg, sizeof(a)))
|
||||
return -EFAULT;
|
||||
return compat_sys_select(a.n, compat_ptr(a.inp), compat_ptr(a.outp),
|
||||
compat_ptr(a.exp), compat_ptr(a.tvp));
|
||||
}
|
||||
|
||||
#ifdef HAVE_SET_RESTORE_SIGMASK
|
||||
static long do_compat_pselect(int n, compat_ulong_t __user *inp,
|
||||
compat_ulong_t __user *outp, compat_ulong_t __user *exp,
|
||||
|
|
|
|||
Loading…
Reference in a new issue