[PATCH 4/5] powerpc/64s: Disable GUAP with nosmap option
Russell Currey
ruscur at russell.cc
Fri Oct 26 17:35:12 AEDT 2018
GUAP is similar to SMAP on x86 platforms, so implement support for
the same kernel parameter.
Signed-off-by: Russell Currey <ruscur at russell.cc>
---
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..b26641df36f2 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_guap = !IS_ENABLED(CONFIG_PPC_RADIX_GUAP);
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_guap = 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_guap)
+ cur_cpu_spec->mmu_features &= ~MMU_FTR_RADIX_GUAP;
/*
* Check /chosen/ibm,architecture-vec-5 if running as a guest.
--
2.19.1
More information about the Linuxppc-dev
mailing list