From 894622e218cfa2702e79b382a97821b51b8fd5f1 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Mon, 30 Nov 2009 13:06:51 -0500 Subject: [PATCH] --- yaml --- r: 174851 b: refs/heads/master c: 2ea1d13f64efdf49319e86c87d9ba38c30902782 h: refs/heads/master i: 174849: 3632dfac8bec4c1f3dff9b66e3d59f0cf07968aa 174847: e0e0ec017ac4bff85eaa6db2c218923279f8c896 v: v3 --- [refs] | 2 +- trunk/arch/arm/include/asm/mman.h | 3 +++ trunk/arch/arm/kernel/calls.S | 2 +- trunk/arch/arm/kernel/sys_arm.c | 25 ------------------------- 4 files changed, 5 insertions(+), 27 deletions(-) diff --git a/[refs] b/[refs] index d7ab0b15bd08..7f280283ffc8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c4caa778157dbbf04116f0ac2111e389b5cd7a29 +refs/heads/master: 2ea1d13f64efdf49319e86c87d9ba38c30902782 diff --git a/trunk/arch/arm/include/asm/mman.h b/trunk/arch/arm/include/asm/mman.h index 8eebf89f5ab1..41f99c573b93 100644 --- a/trunk/arch/arm/include/asm/mman.h +++ b/trunk/arch/arm/include/asm/mman.h @@ -1 +1,4 @@ #include + +#define arch_mmap_check(addr, len, flags) \ + (((flags) & MAP_FIXED && (addr) < FIRST_USER_ADDRESS) ? -EINVAL : 0) diff --git a/trunk/arch/arm/kernel/calls.S b/trunk/arch/arm/kernel/calls.S index f58c1156e779..9314a2d681f1 100644 --- a/trunk/arch/arm/kernel/calls.S +++ b/trunk/arch/arm/kernel/calls.S @@ -172,7 +172,7 @@ /* 160 */ CALL(sys_sched_get_priority_min) CALL(sys_sched_rr_get_interval) CALL(sys_nanosleep) - CALL(sys_arm_mremap) + CALL(sys_mremap) CALL(sys_setresuid16) /* 165 */ CALL(sys_getresuid16) CALL(sys_ni_syscall) /* vm86 */ diff --git a/trunk/arch/arm/kernel/sys_arm.c b/trunk/arch/arm/kernel/sys_arm.c index 78ecaac65206..3b897444a9bd 100644 --- a/trunk/arch/arm/kernel/sys_arm.c +++ b/trunk/arch/arm/kernel/sys_arm.c @@ -28,10 +28,6 @@ #include #include -extern unsigned long do_mremap(unsigned long addr, unsigned long old_len, - unsigned long new_len, unsigned long flags, - unsigned long new_addr); - /* common code for old and new mmaps */ inline long do_mmap2( unsigned long addr, unsigned long len, @@ -43,9 +39,6 @@ inline long do_mmap2( flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); - if (flags & MAP_FIXED && addr < FIRST_USER_ADDRESS) - goto out; - error = -EBADF; if (!(flags & MAP_ANONYMOUS)) { file = fget(fd); @@ -89,24 +82,6 @@ asmlinkage int old_mmap(struct mmap_arg_struct __user *arg) return error; } -asmlinkage unsigned long -sys_arm_mremap(unsigned long addr, unsigned long old_len, - unsigned long new_len, unsigned long flags, - unsigned long new_addr) -{ - unsigned long ret = -EINVAL; - - if (flags & MREMAP_FIXED && new_addr < FIRST_USER_ADDRESS) - goto out; - - down_write(¤t->mm->mmap_sem); - ret = do_mremap(addr, old_len, new_len, flags, new_addr); - up_write(¤t->mm->mmap_sem); - -out: - return ret; -} - /* * Perform the select(nd, in, out, ex, tv) and mmap() system * calls.