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>
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)
> #ifndef MAX_MEMBLOCK_ADDR
> #define MAX_MEMBLOCK_ADDR ((phys_addr_t)~0)
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
(this is defined elsewhere for some architectures but not arm)
(there is only one definition of this in the kernel so it doesn't
need to be weak or in the header etc).
(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.
> void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)