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

Christoffer Dall christoffer.dall at linaro.org
Wed Jul 1 05:59:44 PDT 2015


On Wed, Jul 01, 2015 at 01:24:34PM +0100, Steve Capper wrote:
> On 1 July 2015 at 13:08, Christoffer Dall <christoffer.dall at linaro.org> wrote:
> > The current pmd_huge() and pud_huge() functions simply check if the table
> > bit is not set and reports the entries as huge in that case.  This is
> > counter-intuitive as a clear pmd/pud cannot also be a huge pmd/pud, and
> > it is inconsistent with at least arm and x86.
> >
> > To prevent others from making the same mistake as me in looking at code
> > that calls these functions and to fix an issue with KVM on arm64 that
> > causes memory corruption due to incorrect page reference counting
> > resulting from this mistake, let's change the behavior.
> >
> > Cc: stable at vger.kernel.org
> 
> Thanks Christoffer.
> 
> It may be worth adding:
> 
> Fixes: 084bd29810a5 ("ARM64: mm: HugeTLB support.")
> 
> And, please feel free to add:
> 
> Reviewed-by: Steve Capper <steve.capper at linaro.org>
> 
Thanks!
-Christoffer



More information about the linux-arm-kernel mailing list