From 62e8cb591b9b900e1c60f1aa91e1bb61e0d433ad Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Thu, 7 Jan 2021 18:09:20 +0900 Subject: [PATCH] ARM: mm: Free memblock from free_initrd_mem() Even after free_initrd_mem(), memblock for initrd remains. Free memblock for initrd from free_initrd_mem(). Reported-by: Jaehoon Chung Signed-off-by: Seung-Woo Kim [sw0312.kim: port mainline posted patch to 5.4.y] Signed-off-by: Seung-Woo Kim Change-Id: I42a7461558868cdfdc559959112c81bc4c8b10c5 --- arch/arm/mm/init.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 6f19ba5..bdc88a6 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -700,6 +700,12 @@ void free_initmem(void) #ifdef CONFIG_BLK_DEV_INITRD void free_initrd_mem(unsigned long start, unsigned long end) { + unsigned long aligned_start, aligned_end; + + aligned_start = __virt_to_phys(start) & PAGE_MASK; + aligned_end = PAGE_ALIGN(__virt_to_phys(end)); + memblock_free(aligned_start, aligned_end - aligned_start); + if (start == initrd_start) start = round_down(start, PAGE_SIZE); if (end == initrd_end) -- 2.7.4