bug in identity map for 4KB pages?

Will Deacon will.deacon at arm.com
Wed Jul 29 05:30:02 PDT 2015


On Wed, Jul 29, 2015 at 12:58:07PM +0100, Ard Biesheuvel wrote:
> On 29 July 2015 at 13:49, Ard Biesheuvel <ard.biesheuvel at linaro.org> wrote:
> > Wouldn't something like this make more sense?
> >
> > diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
> > index 597831bdddf3..64480b65ef17 100644
> > --- a/arch/arm64/mm/init.c
> > +++ b/arch/arm64/mm/init.c
> > @@ -158,6 +158,15 @@ early_param("mem", early_mem);
> >
> >  void __init arm64_memblock_init(void)
> >  {
> > +       /*
> > +        * Remove the memory that we will not be able to cover
> > +        * with the linear mapping.
> > +        */
> > +       const s64 linear_region_size = -(s64)PAGE_OFFSET;
> > +
> > +       memblock_remove(0, memstart_addr);
> > +       memblock_remove(memstart_addr + linear_region_size, ULLONG_MAX);
> > +
> >         memblock_enforce_memory_limit(memory_limit);
> >
> >         /*
> > """
> >
> > (taken from my patch 'arm64: override early_init_dt_add_memory_arch()'
> > sent to the list a while ago as part of the linear mapping decoupling
> > series)
> >
> 
> (replying to self) but actually, either solution still means that, of
> the ~16 GB this platform seems to have installed, only 2 GB is made
> available.
> 
> I suppose there is little we can do about it, since we cannot ignore
> the lower 2GB if the kernel resides there ...

Printing a message to the console isn't a bad idea, though.

Will



More information about the linux-arm-kernel mailing list