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.le...@csgroup.eu>
---
 arch/powerpc/mm/nohash/8xx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/mm/nohash/8xx.c b/arch/powerpc/mm/nohash/8xx.c
index 388bba0ab3e7..15d918dce27d 100644
--- a/arch/powerpc/mm/nohash/8xx.c
+++ b/arch/powerpc/mm/nohash/8xx.c
@@ -150,11 +150,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);
        }
 
-- 
2.44.0


Reply via email to