[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/5] target-i386: call x86_cpu_realize() after A
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH 3/5] target-i386: call x86_cpu_realize() after APIC is initialized. |
Date: |
Wed, 20 Jun 2012 15:35:55 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120421 Thunderbird/12.0 |
Am 20.06.2012 14:59, schrieb Igor Mammedov:
> It's not correct to make CPU runnable (i.e. calling x86_cpu_realize())
> when not all properties are set (APIC in this case).
>
> Fix it by calling x86_cpu_realize() at board level after APIC is
> initialized, right before cpu_reset().
>
> Signed-off-by: Igor Mammedov <address@hidden>
> ---
> hw/pc.c | 1 +
> target-i386/helper.c | 2 --
> 2 files changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/hw/pc.c b/hw/pc.c
> index 8368701..8a662cf 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -948,6 +948,7 @@ static X86CPU *pc_new_cpu(const char *cpu_model)
> env->apic_state = apic_init(env, env->cpuid_apic_id);
> }
> qemu_register_reset(pc_cpu_reset, cpu);
> + x86_cpu_realize(OBJECT(cpu), NULL);
> pc_cpu_reset(cpu);
> return cpu;
> }
> diff --git a/target-i386/helper.c b/target-i386/helper.c
> index c52ec13..b38ea7f 100644
> --- a/target-i386/helper.c
> +++ b/target-i386/helper.c
> @@ -1161,8 +1161,6 @@ X86CPU *cpu_x86_init(const char *cpu_model)
> return NULL;
> }
>
> - x86_cpu_realize(OBJECT(cpu), NULL);
> -
> return cpu;
> }
>
This will require changes in linux-user and possibly bsd-user. Having a
cpu_realize() would probably help with avoiding #ifdef'ery.
Unfortunately deriving CPUState from DeviceState proves a bit difficult
in the meantime (it worked at one point, now there's lots of circular
header dependencies), and realize support for Object got stopped.
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
- [Qemu-devel] [PATCH 0/5] target-i386: move cpu reset and tcg intialization inside CPU object, Igor Mammedov, 2012/06/20
- [Qemu-devel] [PATCH 1/5] target-i386: drop usage of prev_debug_excp_handler, Igor Mammedov, 2012/06/20
- [Qemu-devel] [PATCH 2/5] target-i386: move tcg initialization into x86_cpu_initfn(), Igor Mammedov, 2012/06/20
- [Qemu-devel] [PATCH 4/5] target-i386: move cpu halted decision into x86_cpu_reset, Igor Mammedov, 2012/06/20
- [Qemu-devel] [PATCH 5/5] target-i386: move cpu_reset and reset callback to cpu.c, Igor Mammedov, 2012/06/20
- [Qemu-devel] [PATCH 3/5] target-i386: call x86_cpu_realize() after APIC is initialized., Igor Mammedov, 2012/06/20
- Re: [Qemu-devel] [PATCH 3/5] target-i386: call x86_cpu_realize() after APIC is initialized.,
Andreas Färber <=