[PATCH] arm64: Enforce BBM for huge IO/VMAP mappings

Will Deacon will.deacon at arm.com
Wed Feb 21 09:47:19 PST 2018


On Wed, Feb 21, 2018 at 05:44:24PM +0000, Catalin Marinas wrote:
> On Wed, Feb 21, 2018 at 12:59:27PM +0000, Will Deacon wrote:
> > ioremap_page_range doesn't honour break-before-make and attempts to put
> > down huge mappings (using p*d_set_huge) over the top of pre-existing
> > table entries. This leads to us leaking page table memory and also gives
> > rise to TLB conflicts and spurious aborts, which have been seen in
> > practice on Cortex-A75.
> > 
> > Until this has been resolved, refuse to put block mappings when the
> > existing entry is found to be present.
> > 
> > Cc: Ard Biesheuvel <ard.biesheuvel at linaro.org>
> > Reported-by: Hanjun Guo <hanjun.guo at linaro.org>
> > Reported-by: Lei Li <lious.lilei at hisilicon.com>
> > Signed-off-by: Will Deacon <will.deacon at arm.com>
> 
> Queued for 4.16. Shall we put a cc stable?

Yes, good idea:

Fixes: 324420bf91f60 ("arm64: add support for ioremap() block mappings")

Will



More information about the linux-arm-kernel mailing list