aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/kernel/security.c
diff options
context:
space:
mode:
authorGravatar Diana Craciun <diana.craciun@nxp.com> 2018-07-28 09:06:32 +1000
committerGravatar Michael Ellerman <mpe@ellerman.id.au> 2018-08-07 21:49:39 +1000
commitcf175dc315f90185128fb061dc05b6fbb211aa2f (patch)
tree6fbb63a726b11be16dfb89597b3a1625d7d43050 /arch/powerpc/kernel/security.c
parentpowerpc/64s: Don't use __MASKABLE_EXCEPTION unnecessarily (diff)
downloadlinux-cf175dc315f90185128fb061dc05b6fbb211aa2f.tar.gz
linux-cf175dc315f90185128fb061dc05b6fbb211aa2f.tar.bz2
linux-cf175dc315f90185128fb061dc05b6fbb211aa2f.zip
powerpc/64: Disable the speculation barrier from the command line
The speculation barrier can be disabled from the command line with the parameter: "nospectre_v1". Signed-off-by: Diana Craciun <diana.craciun@nxp.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/kernel/security.c')
-rw-r--r--arch/powerpc/kernel/security.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/security.c b/arch/powerpc/kernel/security.c
index 4cb8f1f7b593..79f9397998ed 100644
--- a/arch/powerpc/kernel/security.c
+++ b/arch/powerpc/kernel/security.c
@@ -16,6 +16,7 @@
unsigned long powerpc_security_features __read_mostly = SEC_FTR_DEFAULT;
bool barrier_nospec_enabled;
+static bool no_nospec;
static void enable_barrier_nospec(bool enable)
{
@@ -42,9 +43,18 @@ void setup_barrier_nospec(void)
enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) &&
security_ftr_enabled(SEC_FTR_BNDS_CHK_SPEC_BAR);
- enable_barrier_nospec(enable);
+ if (!no_nospec)
+ enable_barrier_nospec(enable);
}
+static int __init handle_nospectre_v1(char *p)
+{
+ no_nospec = true;
+
+ return 0;
+}
+early_param("nospectre_v1", handle_nospectre_v1);
+
#ifdef CONFIG_DEBUG_FS
static int barrier_nospec_set(void *data, u64 val)
{