| From foo@baz Fri Mar 29 15:53:50 CET 2019 |
| From: Michael Ellerman <mpe@ellerman.id.au> |
| Date: Fri, 29 Mar 2019 22:25:56 +1100 |
| Subject: powerpc/64: Disable the speculation barrier from the command line |
| To: stable@vger.kernel.org, gregkh@linuxfoundation.org |
| Cc: linuxppc-dev@ozlabs.org, diana.craciun@nxp.com, msuchanek@suse.de, christophe.leroy@c-s.fr |
| Message-ID: <20190329112620.14489-9-mpe@ellerman.id.au> |
| |
| From: Diana Craciun <diana.craciun@nxp.com> |
| |
| commit cf175dc315f90185128fb061dc05b6fbb211aa2f upstream. |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/powerpc/kernel/security.c | 12 +++++++++++- |
| 1 file changed, 11 insertions(+), 1 deletion(-) |
| |
| --- 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) |
| { |