]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Use the ibpb_inuse variable.
authorJun Nakajima <jun.nakajima@intel.com>
Wed, 20 Dec 2017 16:04:53 +0000 (08:04 -0800)
committerKirtikar Kashyap <kirtikar.kashyap@oracle.com>
Fri, 12 Jan 2018 18:19:58 +0000 (10:19 -0800)
Orabug: 27344012
CVE: CVE-2017-5715

Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: John Haxby <john.haxby@oracle.com>
Signed-off-by: Kirtikar Kashyap <kirtikar.kashyap@oracle.com>
arch/x86/kvm/svm.c
arch/x86/kvm/vmx.c

index a9b04baf01b3271237b5c4348c592085f84a06e0..8cc1f5347d75d45a25f2e93270687b68d7856a5b 100644 (file)
@@ -1310,7 +1310,7 @@ static void svm_free_vcpu(struct kvm_vcpu *vcpu)
         * The VMCB could be recycled, causing a false negative in svm_vcpu_load;
         * block speculative execution.
         */
-       if (static_cpu_has(X86_FEATURE_IBPB_SUPPORT))
+       if (ibpb_inuse)
                wrmsrl(MSR_IA32_PRED_CMD, FEATURE_SET_IBPB);
 }
 
@@ -1342,7 +1342,7 @@ static void svm_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
        }
        if (sd->current_vmcb != svm->vmcb) {
                sd->current_vmcb = svm->vmcb;
-               if (static_cpu_has(X86_FEATURE_IBPB_SUPPORT))
+               if (ibpb_inuse)
                        wrmsrl(MSR_IA32_PRED_CMD, FEATURE_SET_IBPB);
        }
 
index a245dce60bfada89dd4e4ed17dcf9025919461ed..cd15ec76602f4d9df7c8a067479c6f495a7b1797 100644 (file)
@@ -8181,7 +8181,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
        if (vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP)
                vmx_set_interrupt_shadow(vcpu, 0);
 
-       if (static_cpu_has(X86_FEATURE_SPEC_CTRL) &&
+       if (ibpb_inuse &&
            vmx->spec_ctrl != FEATURE_ENABLE_IBRS)
                wrmsrl(MSR_IA32_SPEC_CTRL, vmx->spec_ctrl);
 
@@ -8311,7 +8311,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
 #endif
              );
 
-       if (static_cpu_has(X86_FEATURE_SPEC_CTRL)) {
+       if (ibpb_inuse) {
                rdmsrl(MSR_IA32_SPEC_CTRL, vmx->spec_ctrl);
                if (vmx->spec_ctrl)
                        wrmsrl(MSR_IA32_SPEC_CTRL, FEATURE_ENABLE_IBRS);