mirror of
https://github.com/torvalds/linux.git
synced 2026-06-06 21:45:45 +02:00
KVM: VMX: Fix IBRS handling after vmexit
commit bea7e31a5c upstream.
For legacy IBRS to work, the IBRS bit needs to be always re-written
after vmexit, even if it's already on.
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5269be9111
commit
47ae76fb27
|
|
@ -6706,8 +6706,13 @@ void noinstr vmx_spec_ctrl_restore_host(struct vcpu_vmx *vmx,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the guest/host SPEC_CTRL values differ, restore the host value.
|
* If the guest/host SPEC_CTRL values differ, restore the host value.
|
||||||
|
*
|
||||||
|
* For legacy IBRS, the IBRS bit always needs to be written after
|
||||||
|
* transitioning from a less privileged predictor mode, regardless of
|
||||||
|
* whether the guest/host values differ.
|
||||||
*/
|
*/
|
||||||
if (vmx->spec_ctrl != hostval)
|
if (cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS) ||
|
||||||
|
vmx->spec_ctrl != hostval)
|
||||||
native_wrmsrl(MSR_IA32_SPEC_CTRL, hostval);
|
native_wrmsrl(MSR_IA32_SPEC_CTRL, hostval);
|
||||||
|
|
||||||
barrier_nospec();
|
barrier_nospec();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user