linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] MIPS: reserve the memblock right after the kernel
@ 2020-11-06 14:10 Alexander A Sverdlin
  2020-11-07  9:40 ` Thomas Bogendoerfer
  0 siblings, 1 reply; 16+ messages in thread
From: Alexander A Sverdlin @ 2020-11-06 14:10 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Jiaxun Yang, linux-mips
  Cc: Alexander Sverdlin, Paul Burton, linux-kernel, stable

From: Alexander Sverdlin <alexander.sverdlin@nokia.com>

Linux doesn't own the memory immediately after the kernel image. On Octeon
bootloader places a shared structure right close after the kernel _end,
refer to "struct cvmx_bootinfo *octeon_bootinfo" in cavium-octeon/setup.c.

If check_kernel_sections_mem() rounds the PFNs up, first memblock_alloc()
inside early_init_dt_alloc_memory_arch() <= device_tree_init() returns
memory block overlapping with the above octeon_bootinfo structure, which
is being overwritten afterwards.

Cc: stable@vger.kernel.org
Fixes: a94e4f24ec83 ("MIPS: init: Drop boot_mem_map")
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
---
 arch/mips/kernel/setup.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index 0d42532..f6cf2f6 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -504,6 +504,12 @@ static void __init check_kernel_sections_mem(void)
 	if (!memblock_is_region_memory(start, size)) {
 		pr_info("Kernel sections are not in the memory maps\n");
 		memblock_add(start, size);
+		/*
+		 * Octeon bootloader places shared data structure right after
+		 * the kernel => make sure it will not be corrupted.
+		 */
+		memblock_reserve(__pa_symbol(&_end),
+				 start + size - __pa_symbol(&_end));
 	}
 }
 
-- 
2.10.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2020-11-17  9:42 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-06 14:10 [PATCH] MIPS: reserve the memblock right after the kernel Alexander A Sverdlin
2020-11-07  9:40 ` Thomas Bogendoerfer
2020-11-09 10:34   ` Alexander Sverdlin
2020-11-09 11:08     ` Alexander Sverdlin
2020-11-10  9:55     ` Thomas Bogendoerfer
2020-11-10 10:29       ` Alexander Sverdlin
2020-11-11 14:52         ` Serge Semin
2020-11-13  2:30           ` Jiaxun Yang
2020-11-13  3:28             ` Jinyang He
2020-11-13  3:49               ` Maciej W. Rozycki
2020-11-13 12:29             ` Alexander Sverdlin
2020-11-13 12:56             ` Alexander Sverdlin
2020-11-13  9:17           ` Alexander Sverdlin
2020-11-13 13:09             ` Alexander Sverdlin
2020-11-16 22:31               ` Serge Semin
2020-11-17  9:41                 ` Alexander Sverdlin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).