From: Catalin Marinas Date: Fri, 16 Jan 2015 13:56:38 +0000 (+0000) Subject: arm64: partially revert "ARM: 8167/1: extend the reserved memory for initrd to be... X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=0145058c3d30b4319d747f64caa16a9cb15f0581;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git arm64: partially revert "ARM: 8167/1: extend the reserved memory for initrd to be page aligned" This patch partially reverts commit 421520ba98290a73b35b7644e877a48f18e06004 (only the arm64 part). There is no guarantee that the boot-loader places other images like dtb in a different page than initrd start/end, especially when the kernel is built with 64KB pages. When this happens, such pages must not be freed. The free_reserved_area() already takes care of rounding up "start" and rounding down "end" to avoid freeing partially used pages. Cc: # 3.17+ Reported-by: Peter Maydell Signed-off-by: Catalin Marinas Signed-off-by: Will Deacon --- diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index bac492c12fcc..c95464a33f36 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -335,14 +335,8 @@ static int keep_initrd; void free_initrd_mem(unsigned long start, unsigned long end) { - if (!keep_initrd) { - if (start == initrd_start) - start = round_down(start, PAGE_SIZE); - if (end == initrd_end) - end = round_up(end, PAGE_SIZE); - + if (!keep_initrd) free_reserved_area((void *)start, (void *)end, 0, "initrd"); - } } static int __init keepinitrd_setup(char *__unused)