summaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorSean Christopherson <sean.j.christopherson@intel.com>2020-03-02 15:56:13 -0800
committerPaolo Bonzini <pbonzini@redhat.com>2020-03-16 17:58:01 +0100
commit87849b1ccbd404eff78b54d8e4dd831e4a905cbb (patch)
treef13586b8140cff75e306f716b257855d46696356 /arch/x86
parent8b2fc445a7619fec55740d0a5785aae4bd1058f3 (diff)
KVM: x86: Clean up CPUID 0x7 sub-leaf loop
Refactor the sub-leaf loop for CPUID 0x7 to move the main leaf out of said loop. The emitted code savings is basically a mirage, as the handling of the main leaf can easily be split to its own helper to avoid code bloat. No functional change intended. Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kvm/cpuid.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 6e1685a16cca..b626893a11d5 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -573,16 +573,16 @@ static inline int __do_cpuid_func(struct kvm_cpuid_entry2 *entry, u32 function,
case 7: {
int i;
- for (i = 0; ; ) {
- do_cpuid_7_mask(&entry[i], i);
- if (i == entry->eax)
- break;
+ do_cpuid_7_mask(entry, 0);
+
+ for (i = 1; i <= entry->eax; i++) {
if (*nent >= maxnent)
goto out;
- ++i;
do_host_cpuid(&entry[i], function, i);
++*nent;
+
+ do_cpuid_7_mask(&entry[i], i);
}
break;
}