x86/speculation/mds: Add mitigation control for MDS
Thomas Gleixner authored
commit bc124170

 upstream

Now that the mitigations are in place, add a command line parameter to
control the mitigation, a mitigation selector function and a SMT update
mechanism.

This is the minimal straight forward initial implementation which just
provides an always on/off mode. The command line parameter is:

  mds=[full|off]

This is consistent with the existing mitigations for other speculative
hardware vulnerabilities.

The idle invocation is dynamically updated according to the SMT state of
the system similar to the dynamic update of the STIBP mitigation. The idle
mitigation is limited to CPUs which are only affected by MSBDS and not any
other variant, because the other variants cannot be mitigated on SMT
enabled systems.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
Reviewed-by: default avatarJon Masters <jcm@redhat.com>
Tested-by: default avatarJon Masters <jcm@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
29510670
Name Last commit Last update
Documentation x86/speculation/mds: Add mitigation control for MDS
LICENSES LICENSES: Remove CC-BY-SA-4.0 license text
arch x86/speculation/mds: Add mitigation control for MDS
block block: pass no-op callback to INIT_WORK().
certs export.h: remove VMLINUX_SYMBOL() and VMLINUX_SYMBOL_STR()
crypto crypto: x86/poly1305 - fix overflow during partial reduction
drivers x86/cpu: Sanitize FAM6_ATOM naming
firmware kbuild: remove all dummy assignments to obj-
fs fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock
include Bluetooth: Align minimum encryption key size for LE and BR/EDR connections
init Revert "mm: use early_pfn_to_nid in page_ext_init"
ipc ipc/shm.c: use ERR_CAST() for shm_lock() error return
kernel locking/futex: Allow low-level atomic operations to return -EAGAIN
lib ubsan: Fix nasty -Wbuiltin-declaration-mismatch GCC-9 warnings
mm slab: fix a crash by reading /proc/slab_allocators
net Bluetooth: Align minimum encryption key size for LE and BR/EDR connections
samples samples: mei: use /dev/mei0 instead of /dev/mei
scripts fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock
security selinux: never allow relabeling on context mounts
sound x86/cpu: Sanitize FAM6_ATOM naming
tools x86/msr-index: Cleanup bit defines
usr initramfs: move gen_initramfs_list.sh from scripts/ to usr/
virt KVM: arm/arm64: vgic-its: Take the srcu lock when parsing the memslots
.clang-format clang-format: Set IndentWrappedFunctionNames false
.cocciconfig scripts: add Linux .cocciconfig for coccinelle
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile
README
Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.