UPSTREAM: Revert "dma-contiguous: check for memory region overlap"
This reverts commit3fa6456ebe. The Commit broke the CMA region creation through DT on arm64, as showed below logs with "memblock=debug": [ 0.000000] memblock_phys_alloc_range: 41943040 bytes align=0x200000 from=0x0000000000000000 max_addr=0x00000000ffffffff early_init_dt_alloc_reserved_memory_arch+0x34/0xa0 [ 0.000000] memblock_reserve: [0x00000000fd600000-0x00000000ffdfffff] memblock_alloc_range_nid+0xc0/0x19c [ 0.000000] Reserved memory: overlap with other memblock reserved region >From call flow, region we defined in DT was always reserved before entering into rmem_cma_setup. Also, rmem_cma_setup has one routine cma_init_reserved_mem to ensure the region was reserved. Checking the region not reserved here seems not correct. early_init_fdt_scan_reserved_mem: fdt_scan_reserved_mem __reserved_mem_reserve_reg early_init_dt_reserve_memory memblock_reserve(using “reg” prop case) fdt_init_reserved_mem __reserved_mem_alloc_size *early_init_dt_alloc_reserved_memory_arch* memblock_reserve(dynamic alloc case) __reserved_mem_init_node rmem_cma_setup(region overlap check here should always fail) Example DT can be used to reproduce issue: dump_mem: mem_dump_region { compatible = "shared-dma-pool"; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; reusable; size = <0 0x2800000>; }; Signed-off-by: Zhenhua Huang <quic_zhenhuah@quicinc.com> (cherry picked from commitf875db4f20) Bug: 306073792 Signed-off-by: John Stultz <jstultz@google.com> Change-Id: Ibad109c99aae7d898c0e996cee67f47c4cef898f
This commit is contained in:
committed by
John Stultz
parent
8a48f7ef9e
commit
d3c1847fdd
@@ -474,11 +474,6 @@ 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;
|
||||
|
||||
Reference in New Issue
Block a user