Patch "powerpc/8xx: Fix initial memory mapping" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    powerpc/8xx: Fix initial memory mapping

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     powerpc-8xx-fix-initial-memory-mapping.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 7c7db984df500187d6f1e0c639826016081841ad
Author: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
Date:   Tue Aug 20 19:23:45 2024 +0200

    powerpc/8xx: Fix initial memory mapping
    
    [ Upstream commit f9f2bff64c2f0dbee57be3d8c2741357ad3d05e6 ]
    
    Commit cf209951fa7f ("powerpc/8xx: Map linear memory with huge pages")
    introduced an initial mapping of kernel TEXT using PAGE_KERNEL_TEXT,
    but the pages that contain kernel TEXT may also contain kernel RODATA,
    and depending on selected debug options PAGE_KERNEL_TEXT may be either
    RWX or ROX. RODATA must be writable during init because it also
    contains ro_after_init data.
    
    So use PAGE_KERNEL_X instead to be sure it is RWX.
    
    Fixes: cf209951fa7f ("powerpc/8xx: Map linear memory with huge pages")
    Signed-off-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://msgid.link/dac7a828d8497c4548c91840575a706657baa4f1.1724173828.git.christophe.leroy@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/powerpc/mm/nohash/8xx.c b/arch/powerpc/mm/nohash/8xx.c
index dbbfe897455dc..52f24fda2d5f6 100644
--- a/arch/powerpc/mm/nohash/8xx.c
+++ b/arch/powerpc/mm/nohash/8xx.c
@@ -147,11 +147,11 @@ unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top)
 
 	mmu_mapin_immr();
 
-	mmu_mapin_ram_chunk(0, boundary, PAGE_KERNEL_TEXT, true);
+	mmu_mapin_ram_chunk(0, boundary, PAGE_KERNEL_X, true);
 	if (debug_pagealloc_enabled_or_kfence()) {
 		top = boundary;
 	} else {
-		mmu_mapin_ram_chunk(boundary, einittext8, PAGE_KERNEL_TEXT, true);
+		mmu_mapin_ram_chunk(boundary, einittext8, PAGE_KERNEL_X, true);
 		mmu_mapin_ram_chunk(einittext8, top, PAGE_KERNEL, true);
 	}
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux