Commit 0145058c3d30b4319d747f64caa16a9cb15f0581
Committed by
Will Deacon
1 parent
cd25b85ba6
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
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: <stable@vger.kernel.org> # 3.17+ Reported-by: Peter Maydell <Peter.Maydell@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Showing 1 changed file with 1 additions and 7 deletions Side-by-side Diff
arch/arm64/mm/init.c
... | ... | @@ -335,14 +335,8 @@ |
335 | 335 | |
336 | 336 | void free_initrd_mem(unsigned long start, unsigned long end) |
337 | 337 | { |
338 | - if (!keep_initrd) { | |
339 | - if (start == initrd_start) | |
340 | - start = round_down(start, PAGE_SIZE); | |
341 | - if (end == initrd_end) | |
342 | - end = round_up(end, PAGE_SIZE); | |
343 | - | |
338 | + if (!keep_initrd) | |
344 | 339 | free_reserved_area((void *)start, (void *)end, 0, "initrd"); |
345 | - } | |
346 | 340 | } |
347 | 341 | |
348 | 342 | static int __init keepinitrd_setup(char *__unused) |