[PATCH v1] arm64/mm: Fix Boot panic on Ampere Altra
Luiz Capitulino
luizcap at redhat.com
Thu Feb 27 12:43:09 PST 2025
On 2025-02-27 13:50, Will Deacon wrote:
> On Tue, 25 Feb 2025 11:46:36 +0000, Ryan Roberts wrote:
>> When the range of present physical memory is sufficiently small enough
>> and the reserved address space for the linear map is sufficiently large
>> enough, The linear map base address is randomized in
>> arm64_memblock_init().
>>
>> Prior to commit 62cffa496aac ("arm64/mm: Override PARange for !LPA2 and
>> use it consistently"), we decided if the sizes were suitable with the
>> help of the raw mmfr0.parange. But the commit changed this to use the
>> sanitized version instead. But the function runs before the register has
>> been sanitized so this returns 0, interpreted as a parange of 32 bits.
>> Some fun wrapping occurs and the logic concludes that there is enough
>> room to randomize the linear map base address, when really there isn't.
>> So the top of the linear map ends up outside the reserved address space.
>>
>> [...]
>
> Applied the reduced version to arm64 (for-next/fixes), thanks!
>
> [1/1] arm64/mm: Fix Boot panic on Ampere Altra
> https://git.kernel.org/arm64/c/2b1283e1ea9b
Just in case:
Tested-by: Luiz Capitulino <luizcap at redhat.com>
More information about the linux-arm-kernel
mailing list