kvm: svm: Always set svm->last_cpu on VMRUN
authorJim Mattson <jmattson@google.com>
Wed, 3 Jun 2020 23:56:19 +0000 (16:56 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 8 Jul 2020 20:21:43 +0000 (16:21 -0400)
Previously, this field was only set when using SEV. Set it for all
vCPU configurations, so that it can be communicated to userspace for
diagnosing potential hardware errors.

Signed-off-by: Jim Mattson <jmattson@google.com>
Reviewed-by: Oliver Upton <oupton@google.com>
Reviewed-by: Peter Shier <pshier@google.com>
Message-Id: <20200603235623.245638-3-jmattson@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/svm/sev.c
arch/x86/kvm/svm/svm.c

index 2b4916f..a8444c7 100644 (file)
@@ -1189,7 +1189,6 @@ void pre_sev_run(struct vcpu_svm *svm, int cpu)
            svm->last_cpu == cpu)
                return;
 
-       svm->last_cpu = cpu;
        sd->sev_vmcbs[asid] = svm->vmcb;
        svm->vmcb->control.tlb_ctl = TLB_CONTROL_FLUSH_ASID;
        mark_dirty(svm->vmcb, VMCB_ASID);
index fd4a918..24b7f32 100644 (file)
@@ -3396,6 +3396,7 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu)
         */
        x86_spec_ctrl_set_guest(svm->spec_ctrl, svm->virt_spec_ctrl);
 
+       svm->last_cpu = vcpu->cpu;
        __svm_vcpu_run(svm->vmcb_pa, (unsigned long *)&svm->vcpu.arch.regs);
 
 #ifdef CONFIG_X86_64