Commit cb268664 authored by Tangquan Zheng's avatar Tangquan Zheng Committed by Treehugger Robot
Browse files

ANDROID: mm: Skip the virtzones area when reserving the CMA region



We have discovered a bug: when there is an overlap between CMA and TAO,
the cma_alloc() function internally causes splitting, which directly
triggers a kernel warning.
	Call trace:
	split_free_page+0x29c/0x2f0
	isolate_single_pageblock+0x38c/0x478
	start_isolate_page_range+0x8c/0x178
	alloc_contig_range+0xf8/0x2f0
	__cma_alloc+0x3dc/0x668
	cma_alloc+0x28/0x40
	dma_alloc_from_contiguous+0x4c/0x60
	atomic_pool_expand+0x9c/0x338
	__dma_atomic_pool_init+0x54/0xc8
	dma_atomic_pool_init+0xb8/0x200
	do_one_initcall+0x80/0x360
	kernel_init_freeable+0x2ac/0x568
	kernel_init+0x2c/0x1f0
	ret_from_fork+0x10/0x20
The fix for this issue is to skip the virtzones area when reserving the CMA region,
ensuring that CMA and virtzones do not overlap.

Bug: 313807618
Change-Id: I121c75defa6652777491818fcad1e87d14d0f02f
Signed-off-by: default avatarTangquan Zheng <zhengtangquan@oppo.com>
parent c6d8de0d
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment