[PATCH] arm64: Use correct method to calculate nomap region boundaries
Huacai Chen
chenhuacai at gmail.com
Wed Oct 27 01:35:37 PDT 2021
Ping?
On Fri, Oct 22, 2021 at 3:07 PM Huacai Chen <chenhuacai at loongson.cn> wrote:
>
> Nomap regions are treated as "reserved". When region boundaries are not
> page aligned, we usually increase the "reserved" regions rather than
> decrease them. So, we should use memblock_region_reserved_base_pfn()/
> memblock_region_reserved_end_pfn() instead of memblock_region_memory_
> base_pfn()/memblock_region_memory_base_pfn() to calculate boundaries.
>
> Signed-off-by: Huacai Chen <chenhuacai at loongson.cn>
> ---
> arch/arm64/kernel/setup.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
> index be5f85b0a24d..1e86d4c5ef8c 100644
> --- a/arch/arm64/kernel/setup.c
> +++ b/arch/arm64/kernel/setup.c
> @@ -232,12 +232,14 @@ static void __init request_standard_resources(void)
> if (memblock_is_nomap(region)) {
> res->name = "reserved";
> res->flags = IORESOURCE_MEM;
> + res->start = __pfn_to_phys(memblock_region_reserved_base_pfn(region));
> + res->end = __pfn_to_phys(memblock_region_reserved_end_pfn(region)) - 1;
> } else {
> res->name = "System RAM";
> res->flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY;
> + res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region));
> + res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1;
> }
> - res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region));
> - res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1;
>
> request_resource(&iomem_resource, res);
>
> --
> 2.27.0
>
More information about the linux-arm-kernel
mailing list