On 1 July 2015 at 14:28, Catalin Marinas <catalin.marinas@xxxxxxx> wrote: > On Wed, Jul 01, 2015 at 02:18:31PM +0100, Catalin Marinas wrote: >> On Wed, Jul 01, 2015 at 02:08:31PM +0200, Christoffer Dall wrote: >> > diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c >> > index 2de9d2e..0eeb4f09 100644 >> > --- a/arch/arm64/mm/hugetlbpage.c >> > +++ b/arch/arm64/mm/hugetlbpage.c >> > @@ -40,13 +40,13 @@ int huge_pmd_unshare(struct mm_struct *mm, unsigned long *addr, pte_t *ptep) >> > >> > int pmd_huge(pmd_t pmd) >> > { >> > - return !(pmd_val(pmd) & PMD_TABLE_BIT); >> > + return pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT); >> > } >> > >> > int pud_huge(pud_t pud) >> > { >> > #ifndef __PAGETABLE_PMD_FOLDED >> > - return !(pud_val(pud) & PUD_TABLE_BIT); >> > + return pud_val(pud) && !(pud_val(pud) & PUD_TABLE_BIT); >> > #else >> > return 0; >> > #endif >> >> Thanks for the patch, I'll add the acks/reviews and Fixes: tags. >> >> (and I think I'll change pmd_val to pmd_present, same for pud; no >> functional difference) > > A related question - can we ever have PROT_NONE on a huge pmd? I'll > leave this patch with pmd_val for now, it matches pmd_trans_huge(). Yes PROT_NONE can be used. I have a test case for it in libhugetlbfs (for HugeTLB) and for THP at: https://git.linaro.org/people/steve.capper/memory-tests.git They worked last time I touched them ;-). Cheers, -- Steve > > -- > Catalin -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html