We also kill the unused name argument. It would introduce an non-necessary depedency on code present at helper.c Signed-off-by: Glauber Costa <glommer@xxxxxxxxxx> --- qemu-kvm-x86.c | 23 +++++++++++++++++++++++ target-i386/helper.c | 29 ----------------------------- 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c index bbe0312..fcb594c 100644 --- a/qemu-kvm-x86.c +++ b/qemu-kvm-x86.c @@ -503,6 +503,19 @@ static int get_para_features(kvm_context_t kvm_context) return features; } +static void kvm_trim_features(uint32_t *features, uint32_t supported) +{ + int i; + uint32_t mask; + + for (i = 0; i < 32; ++i) { + mask = 1U << i; + if ((*features & mask) && !(supported & mask)) { + *features &= ~mask; + } + } +} + int kvm_arch_qemu_init_env(CPUState *cenv) { struct kvm_cpuid_entry2 cpuid_ent[100]; @@ -566,6 +579,16 @@ int kvm_arch_qemu_init_env(CPUState *cenv) do_cpuid_ent(&cpuid_ent[cpuid_nent++], i, 0, ©); kvm_setup_cpuid2(kvm_context, cenv->cpu_index, cpuid_nent, cpuid_ent); + + kvm_trim_features(&cenv->cpuid_features, + kvm_arch_get_supported_cpuid(cenv, 1, R_EDX)); + kvm_trim_features(&cenv->cpuid_ext_features, + kvm_arch_get_supported_cpuid(cenv, 1, R_ECX)); + kvm_trim_features(&cenv->cpuid_ext2_features, + kvm_arch_get_supported_cpuid(cenv, 0x80000001, R_EDX)); + kvm_trim_features(&cenv->cpuid_ext3_features, + kvm_arch_get_supported_cpuid(cenv, 0x80000001, R_ECX)); + return 0; } diff --git a/target-i386/helper.c b/target-i386/helper.c index ed2dc41..848d05b 100644 --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -94,20 +94,6 @@ static void add_flagname_to_bitmaps(char *flagname, uint32_t *features, } } -static void kvm_trim_features(uint32_t *features, uint32_t supported, - const char *names[]) -{ - int i; - uint32_t mask; - - for (i = 0; i < 32; ++i) { - mask = 1U << i; - if ((*features & mask) && !(supported & mask)) { - *features &= ~mask; - } - } -} - typedef struct x86_def_t { const char *name; uint32_t level; @@ -1715,20 +1701,5 @@ CPUX86State *cpu_x86_init(const char *cpu_model) qemu_init_vcpu(env); - if (kvm_enabled()) { - kvm_trim_features(&env->cpuid_features, - kvm_arch_get_supported_cpuid(env, 1, R_EDX), - feature_name); - kvm_trim_features(&env->cpuid_ext_features, - kvm_arch_get_supported_cpuid(env, 1, R_ECX), - ext_feature_name); - kvm_trim_features(&env->cpuid_ext2_features, - kvm_arch_get_supported_cpuid(env, 0x80000001, R_EDX), - ext2_feature_name); - kvm_trim_features(&env->cpuid_ext3_features, - kvm_arch_get_supported_cpuid(env, 0x80000001, R_ECX), - ext3_feature_name); - } - return env; } -- 1.5.6.6 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html