From 3fa6456ebe13adab3ba1817c8e515a5b88f95dce Mon Sep 17 00:00:00 2001 From: Binglei Wang Date: Wed, 26 Jul 2023 22:28:23 +0800 Subject: dma-contiguous: check for memory region overlap In the process of parsing the DTS, check whether the memory region specified by the DTS CMA node area overlaps with the kernel text memory space reserved by memblock before calling early_init_fdt_scan_reserved_mem. Signed-off-by: Binglei Wang Signed-off-by: Christoph Hellwig --- kernel/dma/contiguous.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'kernel/dma') diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c index f005c66f378c..88c595e49e34 100644 --- a/kernel/dma/contiguous.c +++ b/kernel/dma/contiguous.c @@ -473,6 +473,11 @@ static int __init rmem_cma_setup(struct reserved_mem *rmem) return -EBUSY; } + if (memblock_is_region_reserved(rmem->base, rmem->size)) { + pr_info("Reserved memory: overlap with other memblock reserved region\n"); + return -EBUSY; + } + if (!of_get_flat_dt_prop(node, "reusable", NULL) || of_get_flat_dt_prop(node, "no-map", NULL)) return -EINVAL; -- cgit v1.2.3