Messages in this thread Patch in this message | | | From | Binglei Wang <> | Subject | [PATCH v2] cma: check for memory region overlapping | Date | Tue, 25 Jul 2023 22:16:02 +0800 |
| |
From: l3b2w1 <l3b2w1@gmail.com>
Add a overlapping check in the program flow of paring dts. Check if cma area overlaps with memblock-reserved areas (kenrel code area for example)before calling early_init_fdt_scan_reserved_mem.
Signed-off-by: l3b2w1 <l3b2w1@gmail.com> ---
Notes: v2: delete the logic code for handling return EBUSY. v1: return EBUSY when detect overlapping and handle the return case.
kernel/dma/contiguous.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c index 6ea80ae42..20ebbcefd 100644 --- a/kernel/dma/contiguous.c +++ b/kernel/dma/contiguous.c @@ -410,6 +410,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; -- 2.39.0
| |