[libvirt] [uq/master PATCH 2/7] target-i386: Don't change x86_def_t struct on cpu_x86_register()

Paolo Bonzini pbonzini at redhat.com
Fri Jan 31 11:42:30 UTC 2014


Il 30/01/2014 20:48, Eduardo Habkost ha scritto:
> As eventually the x86_def_t data is going to be provided by the CPU
> class, it's better to not touch it, and handle the special cases on the
> X86CPU object itself.
>
> Current behavior of the code should stay exactly the same.
>
> Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
> ---
>  target-i386/cpu.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 8425212..be54f84 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -1841,11 +1841,6 @@ static void cpu_x86_register(X86CPU *cpu, const char *name, Error **errp)
>          return;
>      }
>
> -    if (kvm_enabled()) {
> -        def->features[FEAT_KVM] |= kvm_default_features;
> -    }
> -    def->features[FEAT_1_ECX] |= CPUID_EXT_HYPERVISOR;
> -
>      object_property_set_str(OBJECT(cpu), def->vendor, "vendor", errp);
>      object_property_set_int(OBJECT(cpu), def->level, "level", errp);
>      object_property_set_int(OBJECT(cpu), def->family, "family", errp);
> @@ -1864,6 +1859,12 @@ static void cpu_x86_register(X86CPU *cpu, const char *name, Error **errp)
>      cpu->cache_info_passthrough = def->cache_info_passthrough;
>
>      object_property_set_str(OBJECT(cpu), def->model_id, "model-id", errp);
> +
> +    /* Special cases not set in the x86_def_t structs: */
> +    if (kvm_enabled()) {
> +        env->features[FEAT_KVM] |= kvm_default_features;
> +    }
> +    env->features[FEAT_1_ECX] |= CPUID_EXT_HYPERVISOR;
>  }
>
>  X86CPU *cpu_x86_create(const char *cpu_model, DeviceState *icc_bridge,
>

Reviewed-by: Paolo Bonzini <pbonzini at redhat.com>




More information about the libvir-list mailing list