Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / x86 / kvm / svm.c
index 6d1616d47c54c8499a7f8fd326b72d3c05e1e4f8..5c81daf3ef5782ffdd3337ff4536f046ac7fd094 100644 (file)
@@ -384,8 +384,7 @@ static void svm_init_erratum_383(void)
        int err;
        u64 val;
 
-       /* Only Fam10h is affected */
-       if (boot_cpu_data.x86 != 0x10)
+       if (!cpu_has_amd_erratum(amd_erratum_383))
                return;
 
        /* Use _safe variants to not break nested virtualization */
@@ -1494,7 +1493,7 @@ static void svm_handle_mce(struct vcpu_svm *svm)
                 */
                pr_err("KVM: Guest triggered AMD Erratum 383\n");
 
-               set_bit(KVM_REQ_TRIPLE_FAULT, &svm->vcpu.requests);
+               kvm_make_request(KVM_REQ_TRIPLE_FAULT, &svm->vcpu);
 
                return;
        }
@@ -1963,7 +1962,7 @@ static int nested_svm_vmexit(struct vcpu_svm *svm)
                svm->vmcb->save.cr3 = hsave->save.cr3;
                svm->vcpu.arch.cr3 = hsave->save.cr3;
        } else {
-               kvm_set_cr3(&svm->vcpu, hsave->save.cr3);
+               (void)kvm_set_cr3(&svm->vcpu, hsave->save.cr3);
        }
        kvm_register_write(&svm->vcpu, VCPU_REGS_RAX, hsave->save.rax);
        kvm_register_write(&svm->vcpu, VCPU_REGS_RSP, hsave->save.rsp);
@@ -2086,7 +2085,7 @@ static bool nested_svm_vmrun(struct vcpu_svm *svm)
                svm->vmcb->save.cr3 = nested_vmcb->save.cr3;
                svm->vcpu.arch.cr3 = nested_vmcb->save.cr3;
        } else
-               kvm_set_cr3(&svm->vcpu, nested_vmcb->save.cr3);
+               (void)kvm_set_cr3(&svm->vcpu, nested_vmcb->save.cr3);
 
        /* Guest paging mode is active - reset mmu */
        kvm_mmu_reset_context(&svm->vcpu);
@@ -3424,6 +3423,11 @@ static bool svm_rdtscp_supported(void)
        return false;
 }
 
+static bool svm_has_wbinvd_exit(void)
+{
+       return true;
+}
+
 static void svm_fpu_deactivate(struct kvm_vcpu *vcpu)
 {
        struct vcpu_svm *svm = to_svm(vcpu);
@@ -3508,6 +3512,8 @@ static struct kvm_x86_ops svm_x86_ops = {
        .rdtscp_supported = svm_rdtscp_supported,
 
        .set_supported_cpuid = svm_set_supported_cpuid,
+
+       .has_wbinvd_exit = svm_has_wbinvd_exit,
 };
 
 static int __init svm_init(void)