From: Nitin Gupta Date: Mon, 15 May 2017 22:40:51 +0000 (-0700) Subject: sparc64: Fix mapping of 64k pages with MAP_FIXED X-Git-Tag: v4.1.12-102.0.20170529_2200~3 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=91da2889e92ce475a8a6579ad8c37ac5ab5366fc;p=users%2Fjedix%2Flinux-maple.git sparc64: Fix mapping of 64k pages with MAP_FIXED An incorrect huge page alignment check caused mmap failure for 64K pages when MAP_FIXED is used with address not aligned to HPAGE_SIZE. Orabug: 25885991 Signed-off-by: Nitin Gupta --- diff --git a/arch/sparc/include/asm/hugetlb.h b/arch/sparc/include/asm/hugetlb.h index c1ac3b0758ab6..6670f9111d63a 100644 --- a/arch/sparc/include/asm/hugetlb.h +++ b/arch/sparc/include/asm/hugetlb.h @@ -32,9 +32,11 @@ static inline int is_hugepage_only_range(struct mm_struct *mm, static inline int prepare_hugepage_range(struct file *file, unsigned long addr, unsigned long len) { - if (len & ~HPAGE_MASK) + struct hstate *h = hstate_file(file); + + if (len & ~huge_page_mask(h)) return -EINVAL; - if (addr & ~HPAGE_MASK) + if (addr & ~huge_page_mask(h)) return -EINVAL; return 0; }