aboutsummaryrefslogtreecommitdiffstats
path: root/fs/compat.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/compat.c')
-rw-r--r--fs/compat.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/fs/compat.c b/fs/compat.c
index 00d90c2e66f0..4b6ed03cc478 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -49,6 +49,7 @@
49#include <linux/mm.h> 49#include <linux/mm.h>
50#include <linux/eventpoll.h> 50#include <linux/eventpoll.h>
51#include <linux/fs_struct.h> 51#include <linux/fs_struct.h>
52#include <linux/slab.h>
52 53
53#include <asm/uaccess.h> 54#include <asm/uaccess.h>
54#include <asm/mmu_context.h> 55#include <asm/mmu_context.h>
@@ -1795,6 +1796,24 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp,
1795 return ret; 1796 return ret;
1796} 1797}
1797 1798
1799struct compat_sel_arg_struct {
1800 compat_ulong_t n;
1801 compat_uptr_t inp;
1802 compat_uptr_t outp;
1803 compat_uptr_t exp;
1804 compat_uptr_t tvp;
1805};
1806
1807asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg)
1808{
1809 struct compat_sel_arg_struct a;
1810
1811 if (copy_from_user(&a, arg, sizeof(a)))
1812 return -EFAULT;
1813 return compat_sys_select(a.n, compat_ptr(a.inp), compat_ptr(a.outp),
1814 compat_ptr(a.exp), compat_ptr(a.tvp));
1815}
1816
1798#ifdef HAVE_SET_RESTORE_SIGMASK 1817#ifdef HAVE_SET_RESTORE_SIGMASK
1799static long do_compat_pselect(int n, compat_ulong_t __user *inp, 1818static long do_compat_pselect(int n, compat_ulong_t __user *inp,
1800 compat_ulong_t __user *outp, compat_ulong_t __user *exp, 1819 compat_ulong_t __user *outp, compat_ulong_t __user *exp,