summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mm/mmap.c5
-rw-r--r--mm/mremap.c6
2 files changed, 6 insertions, 5 deletions
diff --git a/mm/mmap.c b/mm/mmap.c
index 14b7da317ec0..a7d8c84d19b7 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -201,6 +201,8 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
201 bool downgraded = false; 201 bool downgraded = false;
202 LIST_HEAD(uf); 202 LIST_HEAD(uf);
203 203
204 brk = untagged_addr(brk);
205
204 if (down_write_killable(&mm->mmap_sem)) 206 if (down_write_killable(&mm->mmap_sem))
205 return -EINTR; 207 return -EINTR;
206 208
@@ -1587,6 +1589,8 @@ unsigned long ksys_mmap_pgoff(unsigned long addr, unsigned long len,
1587 struct file *file = NULL; 1589 struct file *file = NULL;
1588 unsigned long retval; 1590 unsigned long retval;
1589 1591
1592 addr = untagged_addr(addr);
1593
1590 if (!(flags & MAP_ANONYMOUS)) { 1594 if (!(flags & MAP_ANONYMOUS)) {
1591 audit_mmap_fd(fd, flags); 1595 audit_mmap_fd(fd, flags);
1592 file = fget(fd); 1596 file = fget(fd);
@@ -2885,6 +2889,7 @@ EXPORT_SYMBOL(vm_munmap);
2885 2889
2886SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len) 2890SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
2887{ 2891{
2892 addr = untagged_addr(addr);
2888 profile_munmap(addr); 2893 profile_munmap(addr);
2889 return __vm_munmap(addr, len, true); 2894 return __vm_munmap(addr, len, true);
2890} 2895}
diff --git a/mm/mremap.c b/mm/mremap.c
index 64c9a3b8be0a..1fc8a29fbe3f 100644
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -606,12 +606,8 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
606 LIST_HEAD(uf_unmap_early); 606 LIST_HEAD(uf_unmap_early);
607 LIST_HEAD(uf_unmap); 607 LIST_HEAD(uf_unmap);
608 608
609 /*
610 * Architectures may interpret the tag passed to mmap as a background
611 * colour for the corresponding vma. For mremap we don't allow tagged
612 * new_addr to preserve similar behaviour to mmap.
613 */
614 addr = untagged_addr(addr); 609 addr = untagged_addr(addr);
610 new_addr = untagged_addr(new_addr);
615 611
616 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE)) 612 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
617 return ret; 613 return ret;