Subject: Re: [PATCH] arm64: mm: drop redundant remap of FDT first page

From: Catalin Marinas <[email-masked]>
Date: Tue, 26 May 2026 19:57:28 +0100

On Thu, May 14, 2026 at 02:01:01AM +0900, Sang-Heon Jeon wrote:
> fixmap_remap_fdt() calls create_mapping_noalloc() to map the first
> page of the FDT to read its magic and totalsize from the header. If
> the FDT does not fit in a single page, it calls create_mapping_noalloc()
> again to map the rest.
> 
> The second mapping redundantly covers the first page that was just
> mapped by the first mapping.
> 
> Start the second mapping at dt_phys_base + PAGE_SIZE so it only covers
> the pages that have not been mapped yet. No functional change.
> 
> Signed-off-by: Sang-Heon Jeon <[email-masked]>
[...]
> diff --git a/arch/arm64/mm/fixmap.c b/arch/arm64/mm/fixmap.c
> index c5c5425791da..f8aea5572f7c 100644
> --- a/arch/arm64/mm/fixmap.c
> +++ b/arch/arm64/mm/fixmap.c
> @@ -167,8 +167,9 @@ void *__init fixmap_remap_fdt(phys_addr_t dt_phys, int *size, pgprot_t prot)
>  		return NULL;
>  
>  	if (offset + *size > PAGE_SIZE) {
> -		create_mapping_noalloc(dt_phys_base, dt_virt_base,
> -				       offset + *size, prot);
> +		create_mapping_noalloc(dt_phys_base + PAGE_SIZE,
> +			dt_virt_base + PAGE_SIZE,
> +			offset + *size - PAGE_SIZE, prot);
>  	}

Is it actually worth it? It's not that we allocate memory here or take a
noticeable time to reach the first pte. I find the current easier to
read.

-- 
Catalin