aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/sys_arm.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2009-11-30 17:37:04 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2009-12-11 06:44:29 -0500
commitf8b7256096a20436f6d0926747e3ac3d64c81d24 (patch)
tree18bcabd1de263bd2d0f8d6b763bde8b037716c5c /arch/arm/kernel/sys_arm.c
parent0067bd8a55862ac9dd212bd1c4f6f5bff1ca1301 (diff)
Unify sys_mmap*
New helper - sys_mmap_pgoff(); switch syscalls to using it. Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/sys_arm.c')
-rw-r--r--arch/arm/kernel/sys_arm.c30
1 files changed, 1 insertions, 29 deletions
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c
index 3b897444a9bd..ae4027bd01bd 100644
--- a/arch/arm/kernel/sys_arm.c
+++ b/arch/arm/kernel/sys_arm.c
@@ -28,34 +28,6 @@
28#include <linux/ipc.h> 28#include <linux/ipc.h>
29#include <linux/uaccess.h> 29#include <linux/uaccess.h>
30 30
31/* common code for old and new mmaps */
32inline long do_mmap2(
33 unsigned long addr, unsigned long len,
34 unsigned long prot, unsigned long flags,
35 unsigned long fd, unsigned long pgoff)
36{
37 int error = -EINVAL;
38 struct file * file = NULL;
39
40 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
41
42 error = -EBADF;
43 if (!(flags & MAP_ANONYMOUS)) {
44 file = fget(fd);
45 if (!file)
46 goto out;
47 }
48
49 down_write(&current->mm->mmap_sem);
50 error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
51 up_write(&current->mm->mmap_sem);
52
53 if (file)
54 fput(file);
55out:
56 return error;
57}
58
59struct mmap_arg_struct { 31struct mmap_arg_struct {
60 unsigned long addr; 32 unsigned long addr;
61 unsigned long len; 33 unsigned long len;
@@ -77,7 +49,7 @@ asmlinkage int old_mmap(struct mmap_arg_struct __user *arg)
77 if (a.offset & ~PAGE_MASK) 49 if (a.offset & ~PAGE_MASK)
78 goto out; 50 goto out;
79 51
80 error = do_mmap2(a.addr, a.len, a.prot, a.flags, a.fd, a.offset >> PAGE_SHIFT); 52 error = sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset >> PAGE_SHIFT);
81out: 53out:
82 return error; 54 return error;
83} 55}