提交 c0b978fe 编写于 作者: M Ma Wupeng 提交者: Ard Biesheuvel

arm64: mm: Only remove nomap flag for initrd

Commit 177e15f0 ("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: NMa Wupeng <mawupeng1@huawei.com>
Reviewed-by: NArd Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20220614092156.1972846-5-mawupeng1@huawei.comAcked-by: NMike Rapoport <rppt@linux.ibm.com>
Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: NArd Biesheuvel <ardb@kernel.org>
上级 abd62377
...@@ -350,8 +350,8 @@ void __init arm64_memblock_init(void) ...@@ -350,8 +350,8 @@ void __init arm64_memblock_init(void)
"initrd not fully accessible via the linear mapping -- please check your bootloader ...\n")) { "initrd not fully accessible via the linear mapping -- please check your bootloader ...\n")) {
phys_initrd_size = 0; phys_initrd_size = 0;
} else { } else {
memblock_remove(base, size); /* clear MEMBLOCK_ flags */
memblock_add(base, size); memblock_add(base, size);
memblock_clear_nomap(base, size);
memblock_reserve(base, size); memblock_reserve(base, size);
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册