[PATCH 4/5] powerpc/64s: Disable KHRAP with nosmap option
From: Russell Currey <hidden>
Date: 2018-10-17 06:57:31
Subsystem:
linux for powerpc (32-bit and 64-bit), the rest · Maintainers:
Madhavan Srinivasan, Linus Torvalds
KHRAP is similar to SMAP on x86 platforms, so implement support for the same kernel parameter. Signed-off-by: Russell Currey <redacted> --- arch/powerpc/mm/init_64.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c
index 7a9886f98b0c..10182ce3b94f 100644
--- a/arch/powerpc/mm/init_64.c
+++ b/arch/powerpc/mm/init_64.c@@ -312,6 +312,7 @@ void register_page_bootmem_memmap(unsigned long section_nr, #ifdef CONFIG_PPC_BOOK3S_64 static bool disable_radix = !IS_ENABLED(CONFIG_PPC_RADIX_MMU_DEFAULT); +static bool disable_khrap = !IS_ENABLED(CONFIG_PPC_RADIX_KHRAP); static int __init parse_disable_radix(char *p) {
@@ -328,6 +329,18 @@ static int __init parse_disable_radix(char *p) } early_param("disable_radix", parse_disable_radix); +static int __init parse_nosmap(char *p) +{ + /* + * nosmap is an existing option on x86 where it doesn't return -EINVAL + * if the parameter is set to something, so even though it's different + * to disable_radix, don't return an error for compatibility. + */ + disable_khrap = true; + return 0; +} +early_param("nosmap", parse_nosmap); + /* * If we're running under a hypervisor, we need to check the contents of * /chosen/ibm,architecture-vec-5 to see if the hypervisor is willing to do
@@ -381,6 +394,8 @@ void __init mmu_early_init_devtree(void) /* Disable radix mode based on kernel command line. */ if (disable_radix) cur_cpu_spec->mmu_features &= ~MMU_FTR_TYPE_RADIX; + if (disable_radix || disable_khrap) + cur_cpu_spec->mmu_features &= ~MMU_FTR_RADIX_KHRAP; /* * Check /chosen/ibm,architecture-vec-5 if running as a guest.
--
2.19.1