From: Christophe Leroy Date: Mon, 17 Dec 2018 14:18:27 +0000 (+0000) Subject: powerpc/prom: move the device tree if not in declared memory. X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=f242e0ac95cadb27527d0b06c957723c9f63dd74;p=linux.git powerpc/prom: move the device tree if not in declared memory. If the device tree doesn't reside in the memory which is declared inside it, it has to be moved as well as this memory will not be mapped by the kernel. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman --- diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index 87a68e2dc5310..4181ec715f888 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c @@ -124,8 +124,8 @@ static void __init move_device_tree(void) size = fdt_totalsize(initial_boot_params); if ((memory_limit && (start + size) > PHYSICAL_START + memory_limit) || - overlaps_crashkernel(start, size) || - overlaps_initrd(start, size)) { + !memblock_is_memory(start + size - 1) || + overlaps_crashkernel(start, size) || overlaps_initrd(start, size)) { p = __va(memblock_phys_alloc(size, PAGE_SIZE)); memcpy(p, initial_boot_params, size); initial_boot_params = p;