]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
riscv: Do not restrict memory size because of linear mapping on nommu
authorAlexandre Ghiti <alexghiti@rivosinc.com>
Tue, 27 Aug 2024 06:52:30 +0000 (08:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Sep 2024 09:11:45 +0000 (11:11 +0200)
[ Upstream commit 5f771088a2b5edd6f2c5c9f34484ca18dc389f3e ]

It makes no sense to restrict physical memory size because of linear
mapping size constraints when there is no linear mapping, so only do
that when mmu is enabled.

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Closes: https://lore.kernel.org/linux-riscv/CAMuHMdW0bnJt5GMRtOZGkTiM7GK4UaLJCDMF_Ouq++fnDKi3_A@mail.gmail.com/
Fixes: 3b6564427aea ("riscv: Fix linear mapping checks for non-contiguous memory regions")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20240827065230.145021-1-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/riscv/mm/init.c

index abe7a7a7686c17bf9f8496290e45d41293370be8..3245bb525212e3f7ad705292e6278261bb294b6e 100644 (file)
@@ -235,7 +235,7 @@ static void __init setup_bootmem(void)
         * The size of the linear page mapping may restrict the amount of
         * usable RAM.
         */
-       if (IS_ENABLED(CONFIG_64BIT)) {
+       if (IS_ENABLED(CONFIG_64BIT) && IS_ENABLED(CONFIG_MMU)) {
                max_mapped_addr = __pa(PAGE_OFFSET) + KERN_VIRT_SIZE;
                memblock_cap_memory_range(phys_ram_base,
                                          max_mapped_addr - phys_ram_base);