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) > {