aboutsummaryrefslogtreecommitdiffstats
path: root/mm/nommu.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/nommu.c')
-rw-r--r--mm/nommu.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/mm/nommu.c b/mm/nommu.c
index a1792ed2cb1a..e6123a5b2cc1 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -1470,28 +1470,22 @@ error_getting_region:
1470 return -ENOMEM; 1470 return -ENOMEM;
1471} 1471}
1472 1472
1473static unsigned long do_mmap(struct file *file, unsigned long addr, 1473unsigned long vm_mmap(struct file *file, unsigned long addr,
1474 unsigned long len, unsigned long prot, 1474 unsigned long len, unsigned long prot,
1475 unsigned long flag, unsigned long offset) 1475 unsigned long flag, unsigned long offset)
1476{ 1476{
1477 unsigned long ret;
1478 struct mm_struct *mm = current->mm;
1479
1477 if (unlikely(offset + PAGE_ALIGN(len) < offset)) 1480 if (unlikely(offset + PAGE_ALIGN(len) < offset))
1478 return -EINVAL; 1481 return -EINVAL;
1479 if (unlikely(offset & ~PAGE_MASK)) 1482 if (unlikely(offset & ~PAGE_MASK))
1480 return -EINVAL; 1483 return -EINVAL;
1481 return do_mmap_pgoff(file, addr, len, prot, flag, offset >> PAGE_SHIFT);
1482}
1483
1484unsigned long vm_mmap(struct file *file, unsigned long addr,
1485 unsigned long len, unsigned long prot,
1486 unsigned long flag, unsigned long offset)
1487{
1488 unsigned long ret;
1489 struct mm_struct *mm = current->mm;
1490 1484
1491 ret = security_mmap_file(file, prot, flag); 1485 ret = security_mmap_file(file, prot, flag);
1492 if (!ret) { 1486 if (!ret) {
1493 down_write(&mm->mmap_sem); 1487 down_write(&mm->mmap_sem);
1494 ret = do_mmap(file, addr, len, prot, flag, offset); 1488 ret = do_mmap_pgoff(file, addr, len, prot, flag, offset >> PAGE_SHIFT);
1495 up_write(&mm->mmap_sem); 1489 up_write(&mm->mmap_sem);
1496 } 1490 }
1497 return ret; 1491 return ret;