[PATCH v2 1/2] arm64/mm: Allow __create_pgd_mapping() to propagate pgtable_alloc() errors
Kevin Brodsky
kevin.brodsky at arm.com
Tue Oct 14 02:29:05 PDT 2025
On 13/10/2025 10:02, Linu Cherian wrote:
> [...]
>
> @@ -1877,23 +1926,30 @@ int arch_add_memory(int nid, u64 start, u64 size,
> if (force_pte_mapping())
> flags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS;
>
> - __create_pgd_mapping(swapper_pg_dir, start, __phys_to_virt(start),
> - size, params->pgprot, pgd_pgtable_alloc_init_mm,
> - flags);
> + ret = __create_pgd_mapping(swapper_pg_dir, start, __phys_to_virt(start),
> + size, params->pgprot, pgd_pgtable_alloc_init_mm,
> + flags);
> +
Nit: usually no empty line between a call and a trivial if (ret).
> + if (ret)
> + goto out;
>
> memblock_clear_nomap(start, size);
>
> ret = __add_pages(nid, start >> PAGE_SHIFT, size >> PAGE_SHIFT,
> params);
> if (ret)
> - __remove_pgd_mapping(swapper_pg_dir,
> - __phys_to_virt(start), size);
> + goto out;
> else {
> /* Address of hotplugged memory can be smaller */
> max_pfn = max(max_pfn, PFN_UP(start + size));
> max_low_pfn = max_pfn;
> }
>
> + return 0;
> +
> +out:
Nit: since this is an error path, it'd be clearer to call the label
"err" rather than "out".
- Kevin
> + __remove_pgd_mapping(swapper_pg_dir,
> + __phys_to_virt(start), size);
> return ret;
> }
>
More information about the linux-arm-kernel
mailing list