[PATCH] arm64: Don't report clear pmds and puds as huge

Catalin Marinas catalin.marinas at arm.com
Wed Jul 1 06:28:38 PDT 2015


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().

-- 
Catalin



More information about the linux-arm-kernel mailing list