* [PATCH 1/2] MIPS: Don't round up kernel sections size for memblock_add()
@ 2020-12-03 12:36 Alexander A Sverdlin
2020-12-03 12:36 ` [PATCH 2/2] MIPS: OCTEON: Don't add kernel sections into memblock allocator Alexander A Sverdlin
2020-12-04 12:09 ` [PATCH 1/2] MIPS: Don't round up kernel sections size for memblock_add() Thomas Bogendoerfer
0 siblings, 2 replies; 4+ messages in thread
From: Alexander A Sverdlin @ 2020-12-03 12:36 UTC (permalink / raw)
To: linux-mips
Cc: Alexander Sverdlin, Thomas Bogendoerfer, Paul Burton,
Leonid Rosenboim, Corey Minyard, linux-kernel, Serge Semin,
Maciej W . Rozycki, Jinyang He, Jiaxun Yang
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.
Fixes: a94e4f24ec83 ("MIPS: init: Drop boot_mem_map")
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
---
arch/mips/kernel/setup.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index ca579de..9d11f68 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -498,8 +498,8 @@ static void __init request_crashkernel(struct resource *res)
static void __init check_kernel_sections_mem(void)
{
- phys_addr_t start = PFN_PHYS(PFN_DOWN(__pa_symbol(&_text)));
- phys_addr_t size = PFN_PHYS(PFN_UP(__pa_symbol(&_end))) - start;
+ phys_addr_t start = __pa_symbol(&_text);
+ phys_addr_t size = __pa_symbol(&_end) - start;
if (!memblock_is_region_memory(start, size)) {
pr_info("Kernel sections are not in the memory maps\n");
--
2.10.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] MIPS: OCTEON: Don't add kernel sections into memblock allocator
2020-12-03 12:36 [PATCH 1/2] MIPS: Don't round up kernel sections size for memblock_add() Alexander A Sverdlin
@ 2020-12-03 12:36 ` Alexander A Sverdlin
2020-12-04 12:09 ` Thomas Bogendoerfer
2020-12-04 12:09 ` [PATCH 1/2] MIPS: Don't round up kernel sections size for memblock_add() Thomas Bogendoerfer
1 sibling, 1 reply; 4+ messages in thread
From: Alexander A Sverdlin @ 2020-12-03 12:36 UTC (permalink / raw)
To: linux-mips
Cc: Alexander Sverdlin, Thomas Bogendoerfer, Paul Burton,
Leonid Rosenboim, Corey Minyard, linux-kernel, Serge Semin,
Maciej W . Rozycki, Jinyang He, Jiaxun Yang
From: Alexander Sverdlin <alexander.sverdlin@nokia.com>
Because check_kernel_sections_mem() does exactly this for all platforms.
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
---
arch/mips/cavium-octeon/setup.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c
index d051a8a..34cef11 100644
--- a/arch/mips/cavium-octeon/setup.c
+++ b/arch/mips/cavium-octeon/setup.c
@@ -1013,8 +1013,6 @@ void __init plat_mem_setup(void)
uint64_t crashk_end;
#ifndef CONFIG_CRASH_DUMP
int64_t memory;
- uint64_t kernel_start;
- uint64_t kernel_size;
#endif
total = 0;
@@ -1152,13 +1150,6 @@ void __init plat_mem_setup(void)
}
}
cvmx_bootmem_unlock();
- /* Add the memory region for the kernel. */
- kernel_start = (unsigned long) _text;
- kernel_size = _end - _text;
-
- /* Adjust for physical offset. */
- kernel_start &= ~0xffffffff80000000ULL;
- memblock_add(kernel_start, kernel_size);
#endif /* CONFIG_CRASH_DUMP */
#ifdef CONFIG_CAVIUM_RESERVE32
--
2.10.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] MIPS: Don't round up kernel sections size for memblock_add()
2020-12-03 12:36 [PATCH 1/2] MIPS: Don't round up kernel sections size for memblock_add() Alexander A Sverdlin
2020-12-03 12:36 ` [PATCH 2/2] MIPS: OCTEON: Don't add kernel sections into memblock allocator Alexander A Sverdlin
@ 2020-12-04 12:09 ` Thomas Bogendoerfer
1 sibling, 0 replies; 4+ messages in thread
From: Thomas Bogendoerfer @ 2020-12-04 12:09 UTC (permalink / raw)
To: Alexander A Sverdlin
Cc: linux-mips, Paul Burton, Leonid Rosenboim, Corey Minyard,
linux-kernel, Serge Semin, Maciej W . Rozycki, Jinyang He,
Jiaxun Yang
On Thu, Dec 03, 2020 at 01:36:48PM +0100, Alexander A Sverdlin wrote:
> 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.
>
> Fixes: a94e4f24ec83 ("MIPS: init: Drop boot_mem_map")
> Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
> ---
> arch/mips/kernel/setup.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
applied to mips-next.
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] MIPS: OCTEON: Don't add kernel sections into memblock allocator
2020-12-03 12:36 ` [PATCH 2/2] MIPS: OCTEON: Don't add kernel sections into memblock allocator Alexander A Sverdlin
@ 2020-12-04 12:09 ` Thomas Bogendoerfer
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Bogendoerfer @ 2020-12-04 12:09 UTC (permalink / raw)
To: Alexander A Sverdlin
Cc: linux-mips, Paul Burton, Leonid Rosenboim, Corey Minyard,
linux-kernel, Serge Semin, Maciej W . Rozycki, Jinyang He,
Jiaxun Yang
On Thu, Dec 03, 2020 at 01:36:49PM +0100, Alexander A Sverdlin wrote:
> From: Alexander Sverdlin <alexander.sverdlin@nokia.com>
>
> Because check_kernel_sections_mem() does exactly this for all platforms.
>
> Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
> ---
> arch/mips/cavium-octeon/setup.c | 9 ---------
> 1 file changed, 9 deletions(-)
applied to mips-next.
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-12-04 12:11 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-03 12:36 [PATCH 1/2] MIPS: Don't round up kernel sections size for memblock_add() Alexander A Sverdlin
2020-12-03 12:36 ` [PATCH 2/2] MIPS: OCTEON: Don't add kernel sections into memblock allocator Alexander A Sverdlin
2020-12-04 12:09 ` Thomas Bogendoerfer
2020-12-04 12:09 ` [PATCH 1/2] MIPS: Don't round up kernel sections size for memblock_add() Thomas Bogendoerfer
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).