arch_mmap_check() on mn10300
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 30 Nov 2009 22:00:51 +0000 (17:00 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 11 Dec 2009 11:34:10 +0000 (06:34 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/mn10300/include/asm/mman.h
arch/mn10300/kernel/sys_mn10300.c

index 8eebf89f5ab17884a98543f3b37a3b710355083b..db5c53da73ced573d66176a58d8e7b73580b5ae2 100644 (file)
@@ -1 +1,6 @@
 #include <asm-generic/mman.h>
+
+#define MIN_MAP_ADDR   PAGE_SIZE       /* minimum fixed mmap address */
+
+#define arch_mmap_check(addr, len, flags) \
+       (((flags) & MAP_FIXED && (addr) < MIN_MAP_ADDR) ? -EINVAL : 0)
index 8ca5af00334cd1f30567f7c74218040aed7750e6..ec4100dfcb7d60056e2c8225e9eb3372be282170 100644 (file)
@@ -23,8 +23,6 @@
 
 #include <asm/uaccess.h>
 
-#define MIN_MAP_ADDR   PAGE_SIZE       /* minimum fixed mmap address */
-
 /*
  * memory mapping syscall
  */
@@ -37,9 +35,6 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
 
        flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
 
-       if (flags & MAP_FIXED && addr < MIN_MAP_ADDR)
-               goto out;
-
        error = -EBADF;
        if (!(flags & MAP_ANONYMOUS)) {
                file = fget(fd);