]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: mm: correct the inside linear map range during hotplug check
authorPavel Tatashin <pasha.tatashin@soleen.com>
Tue, 16 Feb 2021 15:03:51 +0000 (10:03 -0500)
committerWill Deacon <will@kernel.org>
Mon, 22 Mar 2021 12:47:40 +0000 (12:47 +0000)
commit2fb6f364cb2b885991db40e5a934bcd2da50adf9
treecfb7e00d6872e725875bb8acc9369a43bc33bd22
parent018a025254a458a7d341cc89134a7cd17332e8e7
arm64: mm: correct the inside linear map range during hotplug check

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@soleen.com>
Fixes: d6de4967f364 ("arm64/mm: Validate hotplug range before creating linear mapping")
Tested-by: Tyler Hicks <tyhicks@linux.microsoft.com>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Link: https://lore.kernel.org/r/20210216150351.129018-2-pasha.tatashin@soleen.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/mm/mmu.c