]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
powerpc/mm: Fix conditions to perform MMU specific management by blocks on PPC32.
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Tue, 19 May 2020 05:48:59 +0000 (05:48 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jun 2020 07:32:56 +0000 (09:32 +0200)
commit 4e3319c23a66dabfd6c35f4d2633d64d99b68096 upstream.

Setting init mem to NX shall depend on sinittext being mapped by
block, not on stext being mapped by block.

Setting text and rodata to RO shall depend on stext being mapped by
block, not on sinittext being mapped by block.

Fixes: 63b2bc619565 ("powerpc/mm/32s: Use BATs for STRICT_KERNEL_RWX")
Cc: stable@vger.kernel.org
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/7d565fb8f51b18a3d98445a830b2f6548cb2da2a.1589866984.git.christophe.leroy@csgroup.eu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/mm/pgtable_32.c

index f62de06e3d07c9259f1ecb0ee85830832fa03c96..033a53c77ef1f1c07f095693bda060fcf5e38758 100644 (file)
@@ -169,7 +169,7 @@ void mark_initmem_nx(void)
        unsigned long numpages = PFN_UP((unsigned long)_einittext) -
                                 PFN_DOWN((unsigned long)_sinittext);
 
-       if (v_block_mapped((unsigned long)_stext + 1))
+       if (v_block_mapped((unsigned long)_sinittext))
                mmu_mark_initmem_nx();
        else
                change_page_attr(page, numpages, PAGE_KERNEL);
@@ -181,7 +181,7 @@ void mark_rodata_ro(void)
        struct page *page;
        unsigned long numpages;
 
-       if (v_block_mapped((unsigned long)_sinittext)) {
+       if (v_block_mapped((unsigned long)_stext + 1)) {
                mmu_mark_rodata_ro();
                ptdump_check_wx();
                return;