X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=arch%2Fia64%2Fkernel%2Fsys_ia64.c;h=1eda194b95595110497adb009e457f8fe5c9d116;hb=c36c282b88963d0957368a443168588e62301fda;hp=9ef62a3fbfad5a37fad2df187603d7bb152f1468;hpb=0bc0748dfbefacce9c6b67ab23f2c80133b598f7;p=linux-2.6-omap-h63xx.git diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c index 9ef62a3fbfa..1eda194b955 100644 --- a/arch/ia64/kernel/sys_ia64.c +++ b/arch/ia64/kernel/sys_ia64.c @@ -13,7 +13,6 @@ #include #include /* doh, must come after sched.h... */ #include -#include #include #include #include @@ -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;