KVM: X86: Move kvm_apic_set_version() to kvm_update_cpuid()
authorXiaoyao Li <xiaoyao.li@intel.com>
Wed, 8 Jul 2020 06:50:54 +0000 (14:50 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 9 Jul 2020 10:48:09 +0000 (06:48 -0400)
There is no dependencies between kvm_apic_set_version() and
kvm_update_cpuid() because kvm_apic_set_version() queries X2APIC CPUID bit,
which is not touched/changed by kvm_update_cpuid().

Obviously, kvm_apic_set_version() belongs to the category of updating
vcpu model.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-Id: <20200708065054.19713-9-xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/cpuid.c

index f6f760d..eebd66f 100644 (file)
@@ -75,6 +75,8 @@ int kvm_update_cpuid(struct kvm_vcpu *vcpu)
                        apic->lapic_timer.timer_mode_mask = 3 << 17;
                else
                        apic->lapic_timer.timer_mode_mask = 1 << 17;
+
+               kvm_apic_set_version(vcpu);
        }
 
        best = kvm_find_cpuid_entry(vcpu, 7, 0);
@@ -205,7 +207,6 @@ int kvm_vcpu_ioctl_set_cpuid(struct kvm_vcpu *vcpu,
        }
        vcpu->arch.cpuid_nent = cpuid->nent;
        cpuid_fix_nx_cap(vcpu);
-       kvm_apic_set_version(vcpu);
        kvm_x86_ops.cpuid_update(vcpu);
        r = kvm_update_cpuid(vcpu);
        if (r)
@@ -230,7 +231,6 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
                           cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
                goto out;
        vcpu->arch.cpuid_nent = cpuid->nent;
-       kvm_apic_set_version(vcpu);
        kvm_x86_ops.cpuid_update(vcpu);
        r = kvm_update_cpuid(vcpu);
        if (r)