summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/Makefile
diff options
context:
space:
mode:
authorRussell Currey <ruscur@russell.cc>2021-06-09 03:34:23 +0200
committerMichael Ellerman <mpe@ellerman.id.au>2021-06-21 13:13:20 +0200
commit1f9ad21c3b384a8f16d8c46845a48a01d281a603 (patch)
tree4b85d916dc19ec5493a7f38462600e2695746708 /arch/powerpc/mm/Makefile
parentpowerpc/pesries: Get STF barrier requirement from H_GET_CPU_CHARACTERISTICS (diff)
downloadlinux-1f9ad21c3b384a8f16d8c46845a48a01d281a603.tar.xz
linux-1f9ad21c3b384a8f16d8c46845a48a01d281a603.zip
powerpc/mm: Implement set_memory() routines
The set_memory_{ro/rw/nx/x}() functions are required for STRICT_MODULE_RWX, and are generally useful primitives to have. This implementation is designed to be generic across powerpc's many MMUs. It's possible that this could be optimised to be faster for specific MMUs. This implementation does not handle cases where the caller is attempting to change the mapping of the page it is executing from, or if another CPU is concurrently using the page being altered. These cases likely shouldn't happen, but a more complex implementation with MMU-specific code could safely handle them. On hash, the linear mapping is not kept in the linux pagetable, so this will not change the protection if used on that range. Currently these functions are not used on the linear map so just WARN for now. apply_to_existing_page_range() does not work on huge pages so for now disallow changing the protection of huge pages. [jpn: - Allow set memory functions to be used without Strict RWX - Hash: Disallow certain regions - Have change_page_attr() take function pointers to manipulate ptes - Radix: Add ptesync after set_pte_at()] Signed-off-by: Russell Currey <ruscur@russell.cc> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Jordan Niethe <jniethe5@gmail.com> Reviewed-by: Daniel Axtens <dja@axtens.net> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20210609013431.9805-2-jniethe5@gmail.com
Diffstat (limited to 'arch/powerpc/mm/Makefile')
-rw-r--r--arch/powerpc/mm/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile
index c3df3a8501d4..9142cf1fb0d5 100644
--- a/arch/powerpc/mm/Makefile
+++ b/arch/powerpc/mm/Makefile
@@ -5,7 +5,7 @@
ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC)
-obj-y := fault.o mem.o pgtable.o mmap.o maccess.o \
+obj-y := fault.o mem.o pgtable.o mmap.o maccess.o pageattr.o \
init_$(BITS).o pgtable_$(BITS).o \
pgtable-frag.o ioremap.o ioremap_$(BITS).o \
init-common.o mmu_context.o drmem.o \