i386: kvm: kvm_arch_get_supported_cpuid: replace if+switch with single 'if'

Additional fixups will be added, and making them a single 'if/else if'
chain makes it clearer than two nested switch statements.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
Eduardo Habkost 2012-10-04 17:48:59 -03:00 committed by Marcelo Tosatti
parent dd87f8a690
commit c2acb022c8
1 changed files with 9 additions and 14 deletions

View File

@ -193,20 +193,15 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function,
/* Fixups for the data returned by KVM, below */ /* Fixups for the data returned by KVM, below */
if (reg == R_EDX) { if (function == 1 && reg == R_EDX) {
switch (function) {
case 1:
/* KVM before 2.6.30 misreports the following features */ /* KVM before 2.6.30 misreports the following features */
ret |= CPUID_MTRR | CPUID_PAT | CPUID_MCE | CPUID_MCA; ret |= CPUID_MTRR | CPUID_PAT | CPUID_MCE | CPUID_MCA;
break; } else if (function == 0x80000001 && reg == R_EDX) {
case 0x80000001:
/* On Intel, kvm returns cpuid according to the Intel spec, /* On Intel, kvm returns cpuid according to the Intel spec,
* so add missing bits according to the AMD spec: * so add missing bits according to the AMD spec:
*/ */
cpuid_1_edx = kvm_arch_get_supported_cpuid(s, 1, 0, R_EDX); cpuid_1_edx = kvm_arch_get_supported_cpuid(s, 1, 0, R_EDX);
ret |= cpuid_1_edx & CPUID_EXT2_AMD_ALIASES; ret |= cpuid_1_edx & CPUID_EXT2_AMD_ALIASES;
break;
}
} }
g_free(cpuid); g_free(cpuid);