KVM: x86: Zero out entire Hyper-V CPUID cache before processing entries
authorVitaly Kuznetsov <vkuznets@redhat.com>
Tue, 30 Aug 2022 13:37:07 +0000 (15:37 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 26 Sep 2022 16:02:38 +0000 (12:02 -0400)
Wipe the whole 'hv_vcpu->cpuid_cache' with memset() instead of having to
zero each particular member when the corresponding CPUID entry was not
found.

No functional change intended.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
[sean: split to separate patch]
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Wei Liu <wei.liu@kernel.org>
Link: https://lore.kernel.org/r/20220830133737.1539624-4-vkuznets@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/hyperv.c

index ed804447589c9353765413ae41e0dc4252fb6f78..611c349a08bf5f06207cabbafb1d6e59105538db 100644 (file)
@@ -2005,31 +2005,24 @@ void kvm_hv_set_cpuid(struct kvm_vcpu *vcpu)
 
        hv_vcpu = to_hv_vcpu(vcpu);
 
+       memset(&hv_vcpu->cpuid_cache, 0, sizeof(hv_vcpu->cpuid_cache));
+
        entry = kvm_find_cpuid_entry(vcpu, HYPERV_CPUID_FEATURES);
        if (entry) {
                hv_vcpu->cpuid_cache.features_eax = entry->eax;
                hv_vcpu->cpuid_cache.features_ebx = entry->ebx;
                hv_vcpu->cpuid_cache.features_edx = entry->edx;
-       } else {
-               hv_vcpu->cpuid_cache.features_eax = 0;
-               hv_vcpu->cpuid_cache.features_ebx = 0;
-               hv_vcpu->cpuid_cache.features_edx = 0;
        }
 
        entry = kvm_find_cpuid_entry(vcpu, HYPERV_CPUID_ENLIGHTMENT_INFO);
        if (entry) {
                hv_vcpu->cpuid_cache.enlightenments_eax = entry->eax;
                hv_vcpu->cpuid_cache.enlightenments_ebx = entry->ebx;
-       } else {
-               hv_vcpu->cpuid_cache.enlightenments_eax = 0;
-               hv_vcpu->cpuid_cache.enlightenments_ebx = 0;
        }
 
        entry = kvm_find_cpuid_entry(vcpu, HYPERV_CPUID_SYNDBG_PLATFORM_CAPABILITIES);
        if (entry)
                hv_vcpu->cpuid_cache.syndbg_cap_eax = entry->eax;
-       else
-               hv_vcpu->cpuid_cache.syndbg_cap_eax = 0;
 }
 
 int kvm_hv_set_enforce_cpuid(struct kvm_vcpu *vcpu, bool enforce)