Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ea1d13f authored by Al Viro's avatar Al Viro
Browse files

arm: add arch_mmap_check(), get rid of sys_arm_mremap()

parent c4caa778
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
#include <asm-generic/mman.h>

#define arch_mmap_check(addr, len, flags) \
	(((flags) & MAP_FIXED && (addr) < FIRST_USER_ADDRESS) ? -EINVAL : 0)
+1 −1
Original line number Diff line number Diff line
@@ -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 */
+0 −25
Original line number Diff line number Diff line
@@ -28,10 +28,6 @@
#include <linux/ipc.h>
#include <linux/uaccess.h>

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 @@ out:
	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(&current->mm->mmap_sem);
	ret = do_mremap(addr, old_len, new_len, flags, new_addr);
	up_write(&current->mm->mmap_sem);

out:
	return ret;
}

/*
 * Perform the select(nd, in, out, ex, tv) and mmap() system
 * calls.