i386: kvm: kvm_arch_get_supported_cpuid: move R_EDX hack outside of for loop

The for loop will become a separate function, so clean it up so it can
become independent from the bit hacking for R_EDX.

No behavior change[1], just code movement.

[1] Well, only if the kernel returned CPUID leafs 1 or 0x80000001 as
    unsupported, but there's no kernel version that does that.

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:53 -03:00 committed by Marcelo Tosatti
parent aee0bf7d8d
commit 7b46e5ce81

View File

@ -155,6 +155,14 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function,
break; break;
case R_EDX: case R_EDX:
ret = cpuid->entries[i].edx; ret = cpuid->entries[i].edx;
break;
}
}
}
/* Fixups for the data returned by KVM, below */
if (reg == R_EDX) {
switch (function) { switch (function) {
case 1: case 1:
/* KVM before 2.6.30 misreports the following features */ /* KVM before 2.6.30 misreports the following features */
@ -168,9 +176,6 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function,
ret |= cpuid_1_edx & CPUID_EXT2_AMD_ALIASES; ret |= cpuid_1_edx & CPUID_EXT2_AMD_ALIASES;
break; break;
} }
break;
}
}
} }
g_free(cpuid); g_free(cpuid);