mm/huge_memory: replace VM_NO_THP VM_BUG_ON with actual VMA check
[firefly-linux-kernel-4.4.55.git] / mm / mremap.c
index 5a71cce8c6ea8cd679dad306bd3ee655ab370a47..c25bc6268e46506dba0320d15bb5c2e7d3e079f3 100644 (file)
@@ -401,7 +401,7 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
        unsigned long charged = 0;
        unsigned long map_flags;
 
-       if (new_addr & ~PAGE_MASK)
+       if (offset_in_page(new_addr))
                goto out;
 
        if (new_len > TASK_SIZE || new_addr > TASK_SIZE - new_len)
@@ -435,11 +435,11 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
        ret = get_unmapped_area(vma->vm_file, new_addr, new_len, vma->vm_pgoff +
                                ((addr - vma->vm_start) >> PAGE_SHIFT),
                                map_flags);
-       if (ret & ~PAGE_MASK)
+       if (offset_in_page(ret))
                goto out1;
 
        ret = move_vma(vma, addr, old_len, new_len, new_addr, locked);
-       if (!(ret & ~PAGE_MASK))
+       if (!(offset_in_page(ret)))
                goto out;
 out1:
        vm_unacct_memory(charged);
@@ -484,7 +484,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
        if (flags & MREMAP_FIXED && !(flags & MREMAP_MAYMOVE))
                return ret;
 
-       if (addr & ~PAGE_MASK)
+       if (offset_in_page(addr))
                return ret;
 
        old_len = PAGE_ALIGN(old_len);
@@ -566,7 +566,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
                                        vma->vm_pgoff +
                                        ((addr - vma->vm_start) >> PAGE_SHIFT),
                                        map_flags);
-               if (new_addr & ~PAGE_MASK) {
+               if (offset_in_page(new_addr)) {
                        ret = new_addr;
                        goto out;
                }
@@ -574,7 +574,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
                ret = move_vma(vma, addr, old_len, new_len, new_addr, &locked);
        }
 out:
-       if (ret & ~PAGE_MASK) {
+       if (offset_in_page(ret)) {
                vm_unacct_memory(charged);
                locked = 0;
        }