[PATCH v4 5/6] mm: Only remove nomap flag for initrd

mawupeng mawupeng1 at huawei.com
Mon Jun 13 03:50:45 PDT 2022



On 6/13/2022 5:42 PM, Ard Biesheuvel wrote:
> On Mon, 13 Jun 2022 at 10:00, Wupeng Ma <mawupeng1 at huawei.com> wrote:
>>
>> From: Ma Wupeng <mawupeng1 at huawei.com>
>>
>> Commit 177e15f0c144 ("arm64: add the initrd region to the linear mapping explicitly")
>> remove all the flags of the memory used by initrd. This is fine since
>> MEMBLOCK_MIRROR is not used in arm64.
>>
>> However with mirrored feature introduced to arm64, this will clear the mirrored
>> flag used by initrd, which will lead to error log printed by
>> find_zone_movable_pfns_for_nodes() if the lower 4G range has some non-mirrored
>> memory.
>>
>> To solve this problem, only MEMBLOCK_NOMAP flag will be removed via
>> memblock_clear_nomap().
>>
>> Signed-off-by: Ma Wupeng <mawupeng1 at huawei.com>
> 
> Reviewed-by: Ard Biesheuvel <ardb at kernel.org>
> 
> This needs and ack from the arm64 maintainers, please?
> And also please fix the subject to include 'arm64'
> 

Ok, I will include 'arm64' in my subject in v5.

Thanks for reviewing.

> 
>> ---
>>  arch/arm64/mm/init.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
>> index 339ee84e5a61..8456dbae9441 100644
>> --- a/arch/arm64/mm/init.c
>> +++ b/arch/arm64/mm/init.c
>> @@ -350,8 +350,8 @@ void __init arm64_memblock_init(void)
>>                         "initrd not fully accessible via the linear mapping -- please check your bootloader ...\n")) {
>>                         phys_initrd_size = 0;
>>                 } else {
>> -                       memblock_remove(base, size); /* clear MEMBLOCK_ flags */
>>                         memblock_add(base, size);
>> +                       memblock_clear_nomap(base, size);
>>                         memblock_reserve(base, size);
>>                 }
>>         }
>> --
>> 2.25.1
>>
> .



More information about the linux-arm-kernel mailing list