Loading arch/alpha/kernel/osf_sys.c +6 −13 Original line number Diff line number Diff line Loading @@ -178,25 +178,18 @@ SYSCALL_DEFINE6(osf_mmap, unsigned long, addr, unsigned long, len, unsigned long, prot, unsigned long, flags, unsigned long, fd, unsigned long, off) { struct file *file = NULL; unsigned long ret = -EBADF; unsigned long ret = -EINVAL; #if 0 if (flags & (_MAP_HASSEMAPHORE | _MAP_INHERIT | _MAP_UNALIGNED)) printk("%s: unimplemented OSF mmap flags %04lx\n", current->comm, flags); #endif if (!(flags & MAP_ANONYMOUS)) { file = fget(fd); if (!file) if ((off + PAGE_ALIGN(len)) < off) goto out; } flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); down_write(¤t->mm->mmap_sem); ret = do_mmap(file, addr, len, prot, flags, off); up_write(¤t->mm->mmap_sem); if (file) fput(file); if (off & ~PAGE_MASK) goto out; ret = sys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT); out: return ret; } Loading arch/arm/kernel/entry-common.S +2 −2 Original line number Diff line number Diff line Loading @@ -416,12 +416,12 @@ sys_mmap2: tst r5, #PGOFF_MASK moveq r5, r5, lsr #PAGE_SHIFT - 12 streq r5, [sp, #4] beq do_mmap2 beq sys_mmap_pgoff mov r0, #-EINVAL mov pc, lr #else str r5, [sp, #4] b do_mmap2 b sys_mmap_pgoff #endif ENDPROC(sys_mmap2) Loading arch/arm/kernel/sys_arm.c +1 −29 Original line number Diff line number Diff line Loading @@ -28,34 +28,6 @@ #include <linux/ipc.h> #include <linux/uaccess.h> /* common code for old and new mmaps */ inline long do_mmap2( unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff) { int error = -EINVAL; struct file * file = NULL; flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); error = -EBADF; if (!(flags & MAP_ANONYMOUS)) { file = fget(fd); if (!file) goto out; } down_write(¤t->mm->mmap_sem); error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); up_write(¤t->mm->mmap_sem); if (file) fput(file); out: return error; } struct mmap_arg_struct { unsigned long addr; unsigned long len; Loading @@ -77,7 +49,7 @@ asmlinkage int old_mmap(struct mmap_arg_struct __user *arg) if (a.offset & ~PAGE_MASK) goto out; error = do_mmap2(a.addr, a.len, a.prot, a.flags, a.fd, a.offset >> PAGE_SHIFT); error = sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset >> PAGE_SHIFT); out: return error; } Loading arch/avr32/include/asm/syscalls.h +0 −4 Original line number Diff line number Diff line Loading @@ -29,10 +29,6 @@ asmlinkage int sys_sigaltstack(const stack_t __user *, stack_t __user *, struct pt_regs *); asmlinkage int sys_rt_sigreturn(struct pt_regs *); /* kernel/sys_avr32.c */ asmlinkage long sys_mmap2(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, off_t); /* mm/cache.c */ asmlinkage int sys_cacheflush(int, void __user *, size_t); Loading arch/avr32/kernel/sys_avr32.c +0 −31 Original line number Diff line number Diff line Loading @@ -5,39 +5,8 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include <linux/errno.h> #include <linux/fs.h> #include <linux/file.h> #include <linux/mm.h> #include <linux/unistd.h> #include <asm/mman.h> #include <asm/uaccess.h> #include <asm/syscalls.h> asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, off_t offset) { int error = -EBADF; struct file *file = NULL; flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); if (!(flags & MAP_ANONYMOUS)) { file = fget(fd); if (!file) return error; } down_write(¤t->mm->mmap_sem); error = do_mmap_pgoff(file, addr, len, prot, flags, offset); up_write(¤t->mm->mmap_sem); if (file) fput(file); return error; } int kernel_execve(const char *file, char **argv, char **envp) { register long scno asm("r8") = __NR_execve; Loading Loading
arch/alpha/kernel/osf_sys.c +6 −13 Original line number Diff line number Diff line Loading @@ -178,25 +178,18 @@ SYSCALL_DEFINE6(osf_mmap, unsigned long, addr, unsigned long, len, unsigned long, prot, unsigned long, flags, unsigned long, fd, unsigned long, off) { struct file *file = NULL; unsigned long ret = -EBADF; unsigned long ret = -EINVAL; #if 0 if (flags & (_MAP_HASSEMAPHORE | _MAP_INHERIT | _MAP_UNALIGNED)) printk("%s: unimplemented OSF mmap flags %04lx\n", current->comm, flags); #endif if (!(flags & MAP_ANONYMOUS)) { file = fget(fd); if (!file) if ((off + PAGE_ALIGN(len)) < off) goto out; } flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); down_write(¤t->mm->mmap_sem); ret = do_mmap(file, addr, len, prot, flags, off); up_write(¤t->mm->mmap_sem); if (file) fput(file); if (off & ~PAGE_MASK) goto out; ret = sys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT); out: return ret; } Loading
arch/arm/kernel/entry-common.S +2 −2 Original line number Diff line number Diff line Loading @@ -416,12 +416,12 @@ sys_mmap2: tst r5, #PGOFF_MASK moveq r5, r5, lsr #PAGE_SHIFT - 12 streq r5, [sp, #4] beq do_mmap2 beq sys_mmap_pgoff mov r0, #-EINVAL mov pc, lr #else str r5, [sp, #4] b do_mmap2 b sys_mmap_pgoff #endif ENDPROC(sys_mmap2) Loading
arch/arm/kernel/sys_arm.c +1 −29 Original line number Diff line number Diff line Loading @@ -28,34 +28,6 @@ #include <linux/ipc.h> #include <linux/uaccess.h> /* common code for old and new mmaps */ inline long do_mmap2( unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff) { int error = -EINVAL; struct file * file = NULL; flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); error = -EBADF; if (!(flags & MAP_ANONYMOUS)) { file = fget(fd); if (!file) goto out; } down_write(¤t->mm->mmap_sem); error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); up_write(¤t->mm->mmap_sem); if (file) fput(file); out: return error; } struct mmap_arg_struct { unsigned long addr; unsigned long len; Loading @@ -77,7 +49,7 @@ asmlinkage int old_mmap(struct mmap_arg_struct __user *arg) if (a.offset & ~PAGE_MASK) goto out; error = do_mmap2(a.addr, a.len, a.prot, a.flags, a.fd, a.offset >> PAGE_SHIFT); error = sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset >> PAGE_SHIFT); out: return error; } Loading
arch/avr32/include/asm/syscalls.h +0 −4 Original line number Diff line number Diff line Loading @@ -29,10 +29,6 @@ asmlinkage int sys_sigaltstack(const stack_t __user *, stack_t __user *, struct pt_regs *); asmlinkage int sys_rt_sigreturn(struct pt_regs *); /* kernel/sys_avr32.c */ asmlinkage long sys_mmap2(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, off_t); /* mm/cache.c */ asmlinkage int sys_cacheflush(int, void __user *, size_t); Loading
arch/avr32/kernel/sys_avr32.c +0 −31 Original line number Diff line number Diff line Loading @@ -5,39 +5,8 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include <linux/errno.h> #include <linux/fs.h> #include <linux/file.h> #include <linux/mm.h> #include <linux/unistd.h> #include <asm/mman.h> #include <asm/uaccess.h> #include <asm/syscalls.h> asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, off_t offset) { int error = -EBADF; struct file *file = NULL; flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); if (!(flags & MAP_ANONYMOUS)) { file = fget(fd); if (!file) return error; } down_write(¤t->mm->mmap_sem); error = do_mmap_pgoff(file, addr, len, prot, flags, offset); up_write(¤t->mm->mmap_sem); if (file) fput(file); return error; } int kernel_execve(const char *file, char **argv, char **envp) { register long scno asm("r8") = __NR_execve; Loading