diff options
Diffstat (limited to 'fs/compat.c')
-rw-r--r-- | fs/compat.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/fs/compat.c b/fs/compat.c index 00d90c2e66f0..030602d453b7 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
@@ -1795,6 +1795,24 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp, | |||
1795 | return ret; | 1795 | return ret; |
1796 | } | 1796 | } |
1797 | 1797 | ||
1798 | struct compat_sel_arg_struct { | ||
1799 | compat_ulong_t n; | ||
1800 | compat_uptr_t inp; | ||
1801 | compat_uptr_t outp; | ||
1802 | compat_uptr_t exp; | ||
1803 | compat_uptr_t tvp; | ||
1804 | }; | ||
1805 | |||
1806 | asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg) | ||
1807 | { | ||
1808 | struct compat_sel_arg_struct a; | ||
1809 | |||
1810 | if (copy_from_user(&a, arg, sizeof(a))) | ||
1811 | return -EFAULT; | ||
1812 | return compat_sys_select(a.n, compat_ptr(a.inp), compat_ptr(a.outp), | ||
1813 | compat_ptr(a.exp), compat_ptr(a.tvp)); | ||
1814 | } | ||
1815 | |||
1798 | #ifdef HAVE_SET_RESTORE_SIGMASK | 1816 | #ifdef HAVE_SET_RESTORE_SIGMASK |
1799 | static long do_compat_pselect(int n, compat_ulong_t __user *inp, | 1817 | static long do_compat_pselect(int n, compat_ulong_t __user *inp, |
1800 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, | 1818 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, |