[Top][All Lists]
[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
>
>