kvm: svm: Prefer vcpu->cpu to raw_smp_processor_id()
authorJim Mattson <jmattson@google.com>
Wed, 3 Jun 2020 23:56:18 +0000 (16:56 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 8 Jul 2020 20:21:42 +0000 (16:21 -0400)
The current logical processor id is cached in vcpu->cpu. Use it
instead of raw_smp_processor_id() when a kvm_vcpu struct is available.

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

index 70a8248..fd4a918 100644 (file)
@@ -2992,21 +2992,18 @@ static int handle_exit(struct kvm_vcpu *vcpu, fastpath_t exit_fastpath)
 
 static void reload_tss(struct kvm_vcpu *vcpu)
 {
-       int cpu = raw_smp_processor_id();
+       struct svm_cpu_data *sd = per_cpu(svm_data, vcpu->cpu);
 
-       struct svm_cpu_data *sd = per_cpu(svm_data, cpu);
        sd->tss_desc->type = 9; /* available 32/64-bit TSS */
        load_TR_desc();
 }
 
 static void pre_svm_run(struct vcpu_svm *svm)
 {
-       int cpu = raw_smp_processor_id();
-
-       struct svm_cpu_data *sd = per_cpu(svm_data, cpu);
+       struct svm_cpu_data *sd = per_cpu(svm_data, svm->vcpu.cpu);
 
        if (sev_guest(svm->vcpu.kvm))
-               return pre_sev_run(svm, cpu);
+               return pre_sev_run(svm, svm->vcpu.cpu);
 
        /* FIXME: handle wraparound of asid_generation */
        if (svm->asid_generation != sd->asid_generation)