ANDROID: GKI: Export memblock_free to drivers
On architectures that support the preservation of memblock metadata after __init, allow drivers to call memblock_free() to free a reservation made by early arch code. This is a hack to support the freeing of bootsplash reservations passed to Linux by the bootloader. (This should be reworked in future versions of Android; do not cherry-pick this patch forward.) Bug: 139653858 Bug: 174620135 Bug: 249340121 Change-Id: I32c0ee70c33c94deff70aa548896caa9978396fb Signed-off-by: Alistair Delva <adelva@google.com> (cherry picked from commit 2eeee9f41c0cddbc300d9b89bba6d498998b2498)
This commit is contained in:
parent
c89be468f8
commit
1c6dc00657
@ -338834,6 +338834,15 @@ elf_symbol {
|
|||||||
type_id: 0x01a85b76
|
type_id: 0x01a85b76
|
||||||
full_name: "memblock_end_of_DRAM"
|
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 {
|
elf_symbol {
|
||||||
id: 0xaa97e158
|
id: 0xaa97e158
|
||||||
name: "memchr"
|
name: "memchr"
|
||||||
@ -369543,6 +369552,10 @@ symbols {
|
|||||||
key: "memblock_end_of_DRAM"
|
key: "memblock_end_of_DRAM"
|
||||||
value: 0x746374fa
|
value: 0x746374fa
|
||||||
}
|
}
|
||||||
|
symbol {
|
||||||
|
key: "memblock_free"
|
||||||
|
value: 0x4fb91c54
|
||||||
|
}
|
||||||
symbol {
|
symbol {
|
||||||
key: "memchr"
|
key: "memchr"
|
||||||
value: 0xaa97e158
|
value: 0xaa97e158
|
||||||
|
@ -849,6 +849,9 @@ int __init_memblock memblock_phys_free(phys_addr_t base, phys_addr_t size)
|
|||||||
kmemleak_free_part_phys(base, size);
|
kmemleak_free_part_phys(base, size);
|
||||||
return memblock_remove_range(&memblock.reserved, 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)
|
int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user