]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/powerpc/mm/hugetlbpage-radix.c
powerpc/mm: Enable mappings above 128TB
[karo-tx-linux.git] / arch / powerpc / mm / hugetlbpage-radix.c
index 95207c117b8213ebab89c2b8079c440d77917d78..0aa9cade422f80574569afa33dd6541d235ab6fc 100644 (file)
@@ -50,6 +50,9 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
        struct hstate *h = hstate_file(file);
        struct vm_unmapped_area_info info;
 
+       if (unlikely(addr > mm->context.addr_limit && addr < TASK_SIZE))
+               mm->context.addr_limit = TASK_SIZE;
+
        if (len & ~huge_page_mask(h))
                return -EINVAL;
        if (len > mm->context.addr_limit)
@@ -78,5 +81,9 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
        info.high_limit = current->mm->mmap_base;
        info.align_mask = PAGE_MASK & ~huge_page_mask(h);
        info.align_offset = 0;
+
+       if (addr > DEFAULT_MAP_WINDOW)
+               info.high_limit += mm->context.addr_limit - DEFAULT_MAP_WINDOW;
+
        return vm_unmapped_area(&info);
 }