MIPS: Use early_init_fdt_reserve_self to protect DTB location
authorMarcin Nowakowski <marcin.nowakowski@imgtec.com>
Wed, 23 Nov 2016 13:43:46 +0000 (14:43 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 3 Jan 2017 15:34:45 +0000 (16:34 +0100)
early_init_fdt_reserve_self is used to tell the boot memory allocator
that a memory is occupied by the DTB, so add it in the MIPS init code to
ensure information about the DTB is added to the boot memory array.

Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14610/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/prom.c
arch/mips/kernel/setup.c

index 5fcec3032f38f6aebdf668af3318997e4f53921f..0dbcd152a1a9be353549b6bc114764c4f0cad381 100644 (file)
@@ -49,6 +49,13 @@ void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align)
        return __alloc_bootmem(size, align, __pa(MAX_DMA_ADDRESS));
 }
 
+int __init early_init_dt_reserve_memory_arch(phys_addr_t base,
+                                       phys_addr_t size, bool nomap)
+{
+       add_memory_region(base, size, BOOT_MEM_RESERVED);
+       return 0;
+}
+
 void __init __dt_setup_arch(void *bph)
 {
        if (!early_init_dt_scan(bph))
index 64b38d4009873eb5cec2abeec87425432adf9221..c22f0fdd4cfbfb934b16d36553f23590498e5b7b 100644 (file)
@@ -27,6 +27,7 @@
 #include <linux/device.h>
 #include <linux/dma-contiguous.h>
 #include <linux/decompress/generic.h>
+#include <linux/of_fdt.h>
 
 #include <asm/addrspace.h>
 #include <asm/bootinfo.h>
@@ -832,6 +833,9 @@ static void __init arch_mem_init(char **cmdline_p)
                print_memory_map();
        }
 
+       early_init_fdt_reserve_self();
+       early_init_fdt_scan_reserved_mem();
+
        bootmem_init();
 #ifdef CONFIG_PROC_VMCORE
        if (setup_elfcorehdr && setup_elfcorehdr_size) {