]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - arch/ia64/kernel/sys_ia64.c
get_unmapped_area handles MAP_FIXED on ia64
[mirror_ubuntu-hirsute-kernel.git] / arch / ia64 / kernel / sys_ia64.c
index 9ef62a3fbfad5a37fad2df187603d7bb152f1468..2fcaa2051aa3855791899aaeceada807bb490ee3 100644 (file)
@@ -33,6 +33,13 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
        if (len > RGN_MAP_LIMIT)
                return -ENOMEM;
 
+       /* handle fixed mapping: prevent overlap with huge pages */
+       if (flags & MAP_FIXED) {
+               if (is_hugepage_only_range(mm, addr, len))
+                       return -EINVAL;
+               return addr;
+       }
+
 #ifdef CONFIG_HUGETLB_PAGE
        if (REGION_NUMBER(addr) == RGN_HPAGE)
                addr = 0;