Commit 8fa1c004 authored by Josh Poimboeuf's avatar Josh Poimboeuf Committed by Stefan Bader

s390/speculation: Support 'mitigations=' cmdline option

Configure s390 runtime CPU speculation bug mitigations in accordance
with the 'mitigations=' cmdline option.  This affects Spectre v1 and
Spectre v2.

The default behavior is unchanged.
Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Tested-by: Jiri Kosina <jkosina@suse.cz> (on x86)
Reviewed-by: default avatarJiri Kosina <jkosina@suse.cz>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H . Peter Anvin" <hpa@zytor.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Waiman Long <longman@redhat.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Jon Masters <jcm@redhat.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: linux-s390@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arch@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Tyler Hicks <tyhicks@canonical.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Steven Price <steven.price@arm.com>
Cc: Phil Auld <pauld@redhat.com>
Link: https://lkml.kernel.org/r/e4a161805458a5ec88812aac0307ae3908a030fc.1555085500.git.jpoimboe@redhat.com

CVE-2017-5715
CVE-2017-5753

(backported from commit 0336e04a https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git)
[juergh:
 - Adjusted context.
 - Adjusted file path Documentation/kernel-parameters.txt.]
Signed-off-by: default avatarJuerg Haefliger <juergh@canonical.com>
Acked-by: default avatarTyler Hicks <tyhicks@canonical.com>
Acked-by: default avatarStefan Bader <stefan.bader@canonical.com>
Signed-off-by: default avatarStefan Bader <stefan.bader@canonical.com>
parent bc17a13d
...@@ -2258,7 +2258,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. ...@@ -2258,7 +2258,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
http://repo.or.cz/w/linux-2.6/mini2440.git http://repo.or.cz/w/linux-2.6/mini2440.git
mitigations= mitigations=
[X86,PPC] Control optional mitigations for CPU [X86,PPC,S390] Control optional mitigations for CPU
vulnerabilities. This is a set of curated, vulnerabilities. This is a set of curated,
arch-independent options, each of which is an arch-independent options, each of which is an
aggregation of existing arch-specific options. aggregation of existing arch-specific options.
...@@ -2268,7 +2268,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted. ...@@ -2268,7 +2268,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
improves system performance, but it may also improves system performance, but it may also
expose users to several CPU vulnerabilities. expose users to several CPU vulnerabilities.
Equivalent to: nopti [X86,PPC] Equivalent to: nopti [X86,PPC]
nospectre_v2 [X86] nobp=0 [S390]
nospectre_v2 [X86,S390]
spec_store_bypass_disable=off [X86,PPC] spec_store_bypass_disable=off [X86,PPC]
l1tf=off [X86] l1tf=off [X86]
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <linux/module.h> #include <linux/module.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/cpu.h>
#include <asm/facility.h> #include <asm/facility.h>
#include <asm/nospec-branch.h> #include <asm/nospec-branch.h>
...@@ -59,7 +60,7 @@ early_param("nospectre_v2", nospectre_v2_setup_early); ...@@ -59,7 +60,7 @@ early_param("nospectre_v2", nospectre_v2_setup_early);
void __init nospec_auto_detect(void) void __init nospec_auto_detect(void)
{ {
if (test_facility(156)) { if (test_facility(156) || cpu_mitigations_off()) {
/* /*
* The machine supports etokens. * The machine supports etokens.
* Disable expolines and disable nobp. * Disable expolines and disable nobp.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment