qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH qom-next 04/59] pc: Add CPU as /machine/cpu[n]


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH qom-next 04/59] pc: Add CPU as /machine/cpu[n]
Date: Fri, 8 Jun 2012 10:20:06 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, May 23, 2012 at 05:07:27AM +0200, Andreas Färber wrote:
> Using the cpu_index, give the X86CPU a canonical path.
> This must be done before initializing the APIC.
> 
> Signed-off-by: Igor Mammedov <address@hidden>
> Signed-off-by: Andreas Färber <address@hidden>
> ---
>  hw/pc.c |   12 ++++++++++++
>  1 files changed, 12 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/pc.c b/hw/pc.c
> index 4167782..e9d7e05 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -945,6 +945,8 @@ static X86CPU *pc_new_cpu(const char *cpu_model)
>  {
>      X86CPU *cpu;
>      CPUX86State *env;
> +    char *name;
> +    Error *error = NULL;
>  
>      cpu = cpu_x86_init(cpu_model);
>      if (cpu == NULL) {
> @@ -952,6 +954,16 @@ static X86CPU *pc_new_cpu(const char *cpu_model)
>          exit(1);
>      }
>      env = &cpu->env;
> +
> +    name = g_strdup_printf("cpu[%d]", env->cpu_index);
> +    object_property_add_child(OBJECT(qdev_get_machine()), name,
> +                              OBJECT(cpu), &error);
This call might be too late. Imagine if before this call a property/child of 
this CPU
would set link on on it. Then it would assert in object_property_set_link ->
object_get_canonical_path since CPU would not have parent a that time.
Wouldn't it better to make it child in CPU's initfn? This way CPU object
could be used as a value for link anywhere once it's been created. 

> +    g_free(name);
> +    if (error_is_set(&error)) {
> +        qerror_report_err(error);
> +        exit(1);
> +    }
> +
>      if ((env->cpuid_features & CPUID_APIC) || smp_cpus > 1) {
>          env->apic_state = apic_init(env, env->cpuid_apic_id);
>      }
> -- 
> 1.7.7
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]