aboutsummaryrefslogtreecommitdiffstats
path: root/fs/compat.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/compat.c')
-rw-r--r--fs/compat.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/fs/compat.c b/fs/compat.c
index 6c19040ffeef..05448730f840 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -38,8 +38,6 @@
38#include <linux/dirent.h> 38#include <linux/dirent.h>
39#include <linux/fsnotify.h> 39#include <linux/fsnotify.h>
40#include <linux/highuid.h> 40#include <linux/highuid.h>
41#include <linux/sunrpc/svc.h>
42#include <linux/nfsd/nfsd.h>
43#include <linux/nfsd/syscall.h> 41#include <linux/nfsd/syscall.h>
44#include <linux/personality.h> 42#include <linux/personality.h>
45#include <linux/rwsem.h> 43#include <linux/rwsem.h>
@@ -51,6 +49,7 @@
51#include <linux/mm.h> 49#include <linux/mm.h>
52#include <linux/eventpoll.h> 50#include <linux/eventpoll.h>
53#include <linux/fs_struct.h> 51#include <linux/fs_struct.h>
52#include <linux/slab.h>
54 53
55#include <asm/uaccess.h> 54#include <asm/uaccess.h>
56#include <asm/mmu_context.h> 55#include <asm/mmu_context.h>
@@ -1532,8 +1531,6 @@ int compat_do_execve(char * filename,
1532 if (retval < 0) 1531 if (retval < 0)
1533 goto out; 1532 goto out;
1534 1533
1535 current->stack_start = current->mm->start_stack;
1536
1537 /* execve succeeded */ 1534 /* execve succeeded */
1538 current->fs->in_exec = 0; 1535 current->fs->in_exec = 0;
1539 current->in_execve = 0; 1536 current->in_execve = 0;
@@ -1797,6 +1794,24 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp,
1797 return ret; 1794 return ret;
1798} 1795}
1799 1796
1797struct compat_sel_arg_struct {
1798 compat_ulong_t n;
1799 compat_uptr_t inp;
1800 compat_uptr_t outp;
1801 compat_uptr_t exp;
1802 compat_uptr_t tvp;
1803};
1804
1805asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg)
1806{
1807 struct compat_sel_arg_struct a;
1808
1809 if (copy_from_user(&a, arg, sizeof(a)))
1810 return -EFAULT;
1811 return compat_sys_select(a.n, compat_ptr(a.inp), compat_ptr(a.outp),
1812 compat_ptr(a.exp), compat_ptr(a.tvp));
1813}
1814
1800#ifdef HAVE_SET_RESTORE_SIGMASK 1815#ifdef HAVE_SET_RESTORE_SIGMASK
1801static long do_compat_pselect(int n, compat_ulong_t __user *inp, 1816static long do_compat_pselect(int n, compat_ulong_t __user *inp,
1802 compat_ulong_t __user *outp, compat_ulong_t __user *exp, 1817 compat_ulong_t __user *outp, compat_ulong_t __user *exp,