summaryrefslogtreecommitdiffstats
path: root/mm/nommu.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-05-30 20:17:35 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-06-01 10:37:18 -0400
commiteb36c5873b96e8c7376768d3906da74aae6e3839 (patch)
tree01c5290ed4c55fea85e0dc3f8d70eeaab44678cf /mm/nommu.c
parentdc982501d9643ab0c117e7d87562857ce234652d (diff)
new helper: vm_mmap_pgoff()
take it to mm/util.c, convert vm_mmap() to use of that one and take it to mm/util.c as well, convert both sys_mmap_pgoff() to use of vm_mmap_pgoff() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'mm/nommu.c')
-rw-r--r--mm/nommu.c29
1 files changed, 1 insertions, 28 deletions
diff --git a/mm/nommu.c b/mm/nommu.c
index e6123a5b2cc1..c4acfbc09972 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -1470,28 +1470,6 @@ error_getting_region:
1470 return -ENOMEM; 1470 return -ENOMEM;
1471} 1471}
1472 1472
1473unsigned long vm_mmap(struct file *file, unsigned long addr,
1474 unsigned long len, unsigned long prot,
1475 unsigned long flag, unsigned long offset)
1476{
1477 unsigned long ret;
1478 struct mm_struct *mm = current->mm;
1479
1480 if (unlikely(offset + PAGE_ALIGN(len) < offset))
1481 return -EINVAL;
1482 if (unlikely(offset & ~PAGE_MASK))
1483 return -EINVAL;
1484
1485 ret = security_mmap_file(file, prot, flag);
1486 if (!ret) {
1487 down_write(&mm->mmap_sem);
1488 ret = do_mmap_pgoff(file, addr, len, prot, flag, offset >> PAGE_SHIFT);
1489 up_write(&mm->mmap_sem);
1490 }
1491 return ret;
1492}
1493EXPORT_SYMBOL(vm_mmap);
1494
1495SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len, 1473SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len,
1496 unsigned long, prot, unsigned long, flags, 1474 unsigned long, prot, unsigned long, flags,
1497 unsigned long, fd, unsigned long, pgoff) 1475 unsigned long, fd, unsigned long, pgoff)
@@ -1508,12 +1486,7 @@ SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len,
1508 1486
1509 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); 1487 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
1510 1488
1511 ret = security_mmap_file(file, prot, flags); 1489 ret = vm_mmap_pgoff(file, addr, len, prot, flags, pgoff);
1512 if (!ret) {
1513 down_write(&current->mm->mmap_sem);
1514 retval = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
1515 up_write(&current->mm->mmap_sem);
1516 }
1517 1490
1518 if (file) 1491 if (file)
1519 fput(file); 1492 fput(file);