linux/arch/powerpc/mm
Christophe Leroy 980bbf7ca7 powerpc/32: Call mmu_mark_initmem_nx() regardless of data block mapping.
mark_initmem_nx() calls either mmu_mark_initmem_nx() or
set_memory_attr() based on return from v_block_mapped()
of _sinittext.

But we can now handle text and data independently, so that
text may be mapped by block even when data is mapped by pages.

On the 8xx for instance, at startup 32Mbytes of memory are
pinned in TLB. So the pinned entries need to go away for sinittext.

In next patch a BAT will be set to also covers sinittext on book3s/32.
So it will also be needed to call mmu_mark_initmem_nx() even when
data above sinittext is not mapped with BATs.

As this is highly dependent on the platform, call mmu_mark_initmem_nx()
regardless of data block mapping. Then the platform will know what to
do.

Modify 8xx mmu_mark_initmem_nx() so that inittext mapping is modified
only when pagealloc debug and kfence are not active, otherwise inittext
is mapped with standard pages. And don't do anything on kernel text
which is already mapped with PAGE_KERNEL_TEXT.

Fixes: da1adea075 ("powerpc/8xx: Allow STRICT_KERNEL_RwX with pinned TLB")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/db3fc14f3bfa6215b0786ef58a6e2bc1e1f964d7.1655202804.git.christophe.leroy@csgroup.eu
2022-07-27 21:36:05 +10:00
..
book3s32 powerpc/32: Remove the 'nobats' kernel parameter 2022-06-29 16:59:06 +10:00
book3s64 powerpc/64s: POWER10 nest MMU can upgrade PTE access authority without TLB flush 2022-07-27 21:36:04 +10:00
kasan powerpc/64e: KASAN Full support for BOOK3E/64 2022-06-29 17:04:15 +10:00
nohash powerpc/32: Call mmu_mark_initmem_nx() regardless of data block mapping. 2022-07-27 21:36:05 +10:00
ptdump powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E 2022-06-29 17:03:42 +10:00
cacheflush.c powerpc: Fix all occurences of "the the" 2022-05-22 15:59:43 +10:00
copro_fault.c powerpc/64s: Move hash MMU support code under CONFIG_PPC_64S_HASH_MMU 2021-12-09 22:41:13 +11:00
dma-noncoherent.c dma-mapping: merge <linux/dma-noncoherent.h> into <linux/dma-map-ops.h> 2020-10-06 07:07:06 +02:00
drmem.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
fault.c powerpc: Move C prototypes out of asm-prototypes.h 2022-03-08 22:06:25 +11:00
hugetlbpage.c powerpc: Include asm/firmware.h in all users of firmware_has_feature() 2022-06-29 16:45:05 +10:00
init-common.c powerpc/kuep: Remove 'nosmep' boot time parameter except for book3s/64 2021-12-09 22:41:18 +11:00
init_32.c powerpc/32: Remove __map_without_ltlbs 2022-06-29 16:59:06 +10:00
init_64.c Merge branch 'topic/ppc-kvm' into next 2022-05-19 23:10:42 +10:00
ioremap.c powerpc: make memremap_compat_align 64s-only 2021-12-02 22:57:24 +11:00
ioremap_32.c powerpc/mm: Leave a gap between early allocated IO areas 2021-06-25 00:07:10 +10:00
ioremap_64.c powerpc/mm: Leave a gap between early allocated IO areas 2021-06-25 00:07:10 +10:00
maccess.c powerpc/inst: Optimise copy_inst_from_kernel_nofault() 2021-12-09 22:41:21 +11:00
Makefile powerpc/mm: Convert to default topdown mmap layout 2022-05-05 22:11:58 +10:00
mem.c Merge branch 'fixes' into next 2022-07-09 19:29:34 +10:00
mmu_context.c powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
mmu_decl.h powerpc/32: Remove the 'nobats' kernel parameter 2022-06-29 16:59:06 +10:00
numa.c powerpc/numa: Associate numa node to its cpu earlier 2022-05-22 15:58:30 +10:00
pageattr.c powerpc: align address to page boundary in change_page_attr() 2022-05-08 22:15:41 +10:00
pgtable-frag.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
pgtable.c powerpc: Fix all occurences of "the the" 2022-05-22 15:59:43 +10:00
pgtable_32.c powerpc/32: Call mmu_mark_initmem_nx() regardless of data block mapping. 2022-07-27 21:36:05 +10:00
pgtable_64.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00