KVM: x86: Mitigate the cross-thread return address predictions bug
authorTom Lendacky <thomas.lendacky@amd.com>
Thu, 9 Feb 2023 15:22:25 +0000 (09:22 -0600)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 10 Feb 2023 12:27:37 +0000 (07:27 -0500)
commit6f0f2d5ef895d66a3f2b32dd05189ec34afa5a55
treef48d5b64cf7eae1d37b1668ac46ec4987b2defd7
parentbe8de49bea505e7777a69ef63d60e02ac1712683
KVM: x86: Mitigate the cross-thread return address predictions bug

By default, KVM/SVM will intercept attempts by the guest to transition
out of C0. However, the KVM_CAP_X86_DISABLE_EXITS capability can be used
by a VMM to change this behavior. To mitigate the cross-thread return
address predictions bug (X86_BUG_SMT_RSB), a VMM must not be allowed to
override the default behavior to intercept C0 transitions.

Use a module parameter to control the mitigation on processors that are
vulnerable to X86_BUG_SMT_RSB. If the processor is vulnerable to the
X86_BUG_SMT_RSB bug and the module parameter is set to mitigate the bug,
KVM will not allow the disabling of the HLT, MWAIT and CSTATE exits.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Message-Id: <4019348b5e07148eb4d593380a5f6713b93c9a16.1675956146.git.thomas.lendacky@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c