Re: [PATCH v3 1/1] arm64: mm: correct the inside linear map range during hotplug check

From: Will Deacon
Date: Mon Feb 22 2021 - 07:59:38 EST


On Fri, Feb 19, 2021 at 02:44:49PM -0500, Pavel Tatashin wrote:
> On Fri, Feb 19, 2021 at 2:18 PM Will Deacon <will@xxxxxxxxxx> wrote:
> >
> > On Tue, Feb 16, 2021 at 10:03:51AM -0500, Pavel Tatashin wrote:
> > > Memory hotplug may fail on systems with CONFIG_RANDOMIZE_BASE because the
> > > linear map range is not checked correctly.
> > >
> > > The start physical address that linear map covers can be actually at the
> > > end of the range because of randomization. Check that and if so reduce it
> > > to 0.
> > >
> > > This can be verified on QEMU with setting kaslr-seed to ~0ul:
> > >
> > > memstart_offset_seed = 0xffff
> > > START: __pa(_PAGE_OFFSET(vabits_actual)) = ffff9000c0000000
> > > END: __pa(PAGE_END - 1) = 1000bfffffff
> > >
> > > Signed-off-by: Pavel Tatashin <pasha.tatashin@xxxxxxxxxx>
> > > Fixes: 58284a901b42 ("arm64/mm: Validate hotplug range before creating linear mapping")
> > > Tested-by: Tyler Hicks <tyhicks@xxxxxxxxxxxxxxxxxxx>
> > > ---
> > > arch/arm64/mm/mmu.c | 21 +++++++++++++++++++--
> > > 1 file changed, 19 insertions(+), 2 deletions(-)
> >
> > I tried to queue this as a fix, but unfortunately it doesn't apply.
> > Please can you send a v4 based on the arm64 for-next/fixes branch?
>
> The previous version, that is not built against linux-next would still
> applies against current mainlein/for-next/fixes
>
> https://lore.kernel.org/lkml/20210215192237.362706-2-pasha.tatashin@xxxxxxxxxx/
>
> I just tried it. I think it would make sense to take v2 fix, so it
> could also be backported to stables.

Taking that won't help either though, because it will just explode when
it meets 'mm' in Linus's tree.

So here's what I think we need to do:

- I'll apply your v3 at -rc1
- You can send backports based on your -v2 for stable once the v3 has
been merged upstream.

Sound good?

Will