From e8e18b40c00d6e74479c56e17bad761694f35216 Mon Sep 17 00:00:00 2001 From: Jaewon Kim Date: Mon, 15 Jul 2024 16:12:25 +0900 Subject: [PATCH] ANDROID: memblock: recognize late freed size at memblock_free_late There may be some free pages freed at memblock_free_late. On my device, commit 89f9a1e876b5 ("bootconfig: use memblock_free_late to free xbc memory to buddy") seems to free about 60KB. memblock_free_late: [0x0000000afe462c40-0x0000000afe463855] xbc_free_mem+0x54/0x64 memblock_free_late: [0x0000000afe452c40-0x0000000afe462c3f] xbc_free_mem+0x54/0x64 Let's remove the freed size out of the memsize kernel size. Bug: 340432773 Signed-off-by: Jaewon Kim Change-Id: I3a5e94d247ee7e4e260e2d6f78036e0132f47919 --- mm/memblock.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/memblock.c b/mm/memblock.c index 9351f9cba46b..10407f3228dc 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -1717,6 +1717,8 @@ void __init memblock_free_late(phys_addr_t base, phys_addr_t size) cursor = PFN_UP(base); end = PFN_DOWN(base + size); + memblock_memsize_mod_kernel_size(-1 * ((long)(end - cursor) << PAGE_SHIFT)); + for (; cursor < end; cursor++) { memblock_free_pages(pfn_to_page(cursor), cursor, 0); totalram_pages_inc();