If a DT specified reserved memory region overlaps an already registered reserved region no notification is made. Starting the system with overlapped memory regions can make it very hard to debug what is going wrong. This is specifically true in case the ramoops console intersects with initrd since the console overwrites memory that is used for initrd, which leads to memory corruption. Highlight this by printing a message about overlapping memory regions. Signed-off-by: Mårten Lindahl <marten.lindahl@xxxxxxxx> --- drivers/of/fdt.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index bdca35284ceb..c6b88a089b35 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -521,6 +521,11 @@ static int __init __reserved_mem_reserve_reg(unsigned long node, base = dt_mem_next_cell(dt_root_addr_cells, &prop); size = dt_mem_next_cell(dt_root_size_cells, &prop); + if (size && memblock_is_reserved(base)) { + pr_warn("WARNING: 0x%08llx+0x%08llx overlaps reserved memory region\n", + (u64)base, (u64)size); + } + if (size && early_init_dt_reserve_memory_arch(base, size, nomap) == 0) pr_debug("Reserved memory: reserved region for node '%s': base %pa, size %lu MiB\n", -- 2.30.2