Pull thermal into release branch
[linux-drm-fsl-dcu.git] / arch / ia64 / kernel / sys_ia64.c
index 9ef62a3fbfad5a37fad2df187603d7bb152f1468..1eda194b95595110497adb009e457f8fe5c9d116 100644 (file)
@@ -13,7 +13,6 @@
 #include <linux/shm.h>
 #include <linux/file.h>                /* doh, must come after sched.h... */
 #include <linux/smp.h>
-#include <linux/smp_lock.h>
 #include <linux/syscalls.h>
 #include <linux/highuid.h>
 #include <linux/hugetlb.h>
@@ -33,6 +32,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;