diff --git a/android/abi_gki_aarch64.stg b/android/abi_gki_aarch64.stg index 504b2553b094..1fd02540a89d 100644 --- a/android/abi_gki_aarch64.stg +++ b/android/abi_gki_aarch64.stg @@ -338834,6 +338834,15 @@ elf_symbol { type_id: 0x01a85b76 full_name: "memblock_end_of_DRAM" } +elf_symbol { + id: 0x4fb91c54 + name: "memblock_free" + is_defined: true + symbol_type: FUNCTION + crc: 0xa6ecab47 + type_id: 0x1567dd7e + full_name: "memblock_free" +} elf_symbol { id: 0xaa97e158 name: "memchr" @@ -369543,6 +369552,10 @@ symbols { key: "memblock_end_of_DRAM" value: 0x746374fa } + symbol { + key: "memblock_free" + value: 0x4fb91c54 + } symbol { key: "memchr" value: 0xaa97e158 diff --git a/mm/memblock.c b/mm/memblock.c index c79f48238517..f4545538139a 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -849,6 +849,9 @@ int __init_memblock memblock_phys_free(phys_addr_t base, phys_addr_t size) kmemleak_free_part_phys(base, size); return memblock_remove_range(&memblock.reserved, base, size); } +#ifdef CONFIG_ARCH_KEEP_MEMBLOCK +EXPORT_SYMBOL_GPL(memblock_free); +#endif int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size) {