diff options
Diffstat (limited to 'arch/arm64/mm/init.c')
| -rw-r--r-- | arch/arm64/mm/init.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index 9b5ab6818f7f..aea834a9691a 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -414,6 +414,12 @@ void __init mem_init(void) void free_initmem(void) { + unsigned long aligned_begin = ALIGN_DOWN((u64)__init_begin, PAGE_SIZE); + unsigned long aligned_end = ALIGN((u64)__init_end, PAGE_SIZE); + + /* Delete __init region from memblock.reserved. */ + memblock_free((void *)aligned_begin, aligned_end - aligned_begin); + free_reserved_area(lm_alias(__init_begin), lm_alias(__init_end), POISON_FREE_INITMEM, "unused kernel"); |