diff options
Diffstat (limited to 'target-i386/cpu.c')
-rw-r--r-- | target-i386/cpu.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 9a48e3f..e75b293 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -1343,15 +1343,11 @@ static int cpu_x86_parse_featurestr(x86_def_t *x86_cpu_def, char *features) unsigned int i; char *featurestr; /* Single 'key=value" string being parsed */ /* Features to be added */ - FeatureWordArray plus_features = { - [FEAT_KVM] = kvm_default_features, - }; + FeatureWordArray plus_features = { 0 }; /* Features to be removed */ FeatureWordArray minus_features = { 0 }; uint32_t numvalue; - add_flagname_to_bitmaps("hypervisor", plus_features); - featurestr = features ? strtok(features, ",") : NULL; while (featurestr) { @@ -1607,6 +1603,9 @@ int cpu_x86_register(X86CPU *cpu, const char *cpu_model) goto error; } + def->kvm_features |= kvm_default_features; + def->ext_features |= CPUID_EXT_HYPERVISOR; + if (cpu_x86_parse_featurestr(def, features) < 0) { goto error; } |