From: Rob Herring <rob.herring@xxxxxxxxxxx> Create a weak version of early_init_dt_add_memory_arch which uses memblock or is an empty function when memblock is not enabled. This will unify all architectures except ones with custom memory bank structs. Signed-off-by: Rob Herring <rob.herring@xxxxxxxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Will Deacon <will.deacon@xxxxxxx> Cc: James Hogan <james.hogan@xxxxxxxxxx> Cc: Michal Simek <monstr@xxxxxxxxx> Cc: Jonas Bonn <jonas@xxxxxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxxxxx> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx> Cc: x86@xxxxxxxxxx Cc: Grant Likely <grant.likely@xxxxxxxxxx> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx Cc: microblaze-uclinux@xxxxxxxxxxxxxx Cc: linux@xxxxxxxxxxxxxxxxxx Cc: devicetree@xxxxxxxxxxxxxxx --- arch/arm64/kernel/setup.c | 18 ------------------ arch/metag/kernel/devtree.c | 6 ------ arch/microblaze/kernel/prom.c | 5 ----- arch/openrisc/kernel/prom.c | 6 ------ arch/x86/kernel/devicetree.c | 10 ---------- drivers/of/fdt.c | 11 +++++++++++ 6 files changed, 11 insertions(+), 45 deletions(-) diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index b4461e1..3790004 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -147,24 +147,6 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys) pr_info("Machine: %s\n", machine_name); } -void __init early_init_dt_add_memory_arch(u64 base, u64 size) -{ - base &= PAGE_MASK; - size &= PAGE_MASK; - if (base + size < PHYS_OFFSET) { - pr_warning("Ignoring memory block 0x%llx - 0x%llx\n", - base, base + size); - return; - } - if (base < PHYS_OFFSET) { - pr_warning("Ignoring memory range 0x%llx - 0x%llx\n", - base, PHYS_OFFSET); - size -= PHYS_OFFSET - base; - base = PHYS_OFFSET; - } - memblock_add(base, size); -} - /* * Limit the memory size that was specified via FDT. */ diff --git a/arch/metag/kernel/devtree.c b/arch/metag/kernel/devtree.c index 049af56..2c6ee6d 100644 --- a/arch/metag/kernel/devtree.c +++ b/arch/metag/kernel/devtree.c @@ -23,12 +23,6 @@ #include <asm/page.h> #include <asm/mach/arch.h> -void __init early_init_dt_add_memory_arch(u64 base, u64 size) -{ - pr_err("%s(%llx, %llx)\n", - __func__, base, size); -} - void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align) { return alloc_bootmem_align(size, align); diff --git a/arch/microblaze/kernel/prom.c b/arch/microblaze/kernel/prom.c index e13686e..951e4d6 100644 --- a/arch/microblaze/kernel/prom.c +++ b/arch/microblaze/kernel/prom.c @@ -41,11 +41,6 @@ #include <asm/sections.h> #include <asm/pci-bridge.h> -void __init early_init_dt_add_memory_arch(u64 base, u64 size) -{ - memblock_add(base, size); -} - #ifdef CONFIG_EARLY_PRINTK static char *stdout; diff --git a/arch/openrisc/kernel/prom.c b/arch/openrisc/kernel/prom.c index fbed459..6dbcaa8 100644 --- a/arch/openrisc/kernel/prom.c +++ b/arch/openrisc/kernel/prom.c @@ -47,12 +47,6 @@ #include <asm/sections.h> #include <asm/setup.h> -void __init early_init_dt_add_memory_arch(u64 base, u64 size) -{ - size &= PAGE_MASK; - memblock_add(base, size); -} - void __init early_init_devtree(void *params) { early_init_dt_scan(params); diff --git a/arch/x86/kernel/devicetree.c b/arch/x86/kernel/devicetree.c index 0db805c..2f5cb37 100644 --- a/arch/x86/kernel/devicetree.c +++ b/arch/x86/kernel/devicetree.c @@ -36,16 +36,6 @@ unsigned long pci_address_to_pio(phys_addr_t address) } EXPORT_SYMBOL_GPL(pci_address_to_pio); -void __init early_init_dt_scan_chosen_arch(unsigned long node) -{ - BUG(); -} - -void __init early_init_dt_add_memory_arch(u64 base, u64 size) -{ - BUG(); -} - void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align) { return __alloc_bootmem(size, align, __pa(MAX_DMA_ADDRESS)); diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 0714dd4..a9dce7a 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -688,6 +688,17 @@ u64 __init dt_mem_next_cell(int s, __be32 **cellp) return of_read_number(p, s); } +void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size) +{ +#ifdef CONFIG_HAVE_MEMBLOCK + base &= PAGE_MASK; + size &= PAGE_MASK; + memblock_add(base, size); +#else + pr_err("%s: ignoring memory (%llx, %llx)\n", __func__, base, size); +#endif +} + /** * early_init_dt_scan_memory - Look for an parse memory nodes */ -- 1.8.1.2 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html