Re: [RFC PATCH 03/29] mm: remove CONFIG_HAVE_MEMBLOCK
From: Jonathan Cameron
Date: Wed Sep 19 2018 - 05:05:14 EST
On Wed, 5 Sep 2018 18:59:18 +0300
Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx> wrote:
> All architecures use memblock for early memory management. There is no need
> for the CONFIG_HAVE_MEMBLOCK configuration option.
>
> Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx>
Hi Mike,
A minor editing issue in here that is stopping boot on arm64 platforms with latest
version of the mm tree.
> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> index 76c83c1..bd841bb 100644
> --- a/drivers/of/fdt.c
> +++ b/drivers/of/fdt.c
> @@ -1115,13 +1115,11 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
> return 1;
> }
>
> -#ifdef CONFIG_HAVE_MEMBLOCK
> #ifndef MIN_MEMBLOCK_ADDR
> #define MIN_MEMBLOCK_ADDR __pa(PAGE_OFFSET)
> #endif
> #ifndef MAX_MEMBLOCK_ADDR
> #define MAX_MEMBLOCK_ADDR ((phys_addr_t)~0)
> -#endif
This isn't the right #endif. It is matching with the #ifndef MAX_MEMBLOCK_ADDR
not the intented #ifdef CONFIG_HAVE_MEMBLOCK.
Now I haven't chased through the exact reason this is causing my acpi
arm64 system not to boot on the basis it is obviously miss-matched anyway
and I'm inherently lazy. It's resulting in stubs replacing the following weak
functions.
early_init_dt_add_memory_arch
(this is defined elsewhere for some architectures but not arm)
early_init_dt_mark_hotplug_memory_arch
(there is only one definition of this in the kernel so it doesn't
need to be weak or in the header etc).
early_init_dt_reserve_memory_arch
(defined on mips but nothing else)
Taking out the right endif also lets you drop an #else removing some stub
functions further down in here.
Nice cleanup in general btw.
Thanks,
Jonathan
>
> void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
> {