[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/1] target-i386: Remove icc_bridge parameter fr
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH 1/1] target-i386: Remove icc_bridge parameter from cpu_x86_create() |
Date: |
Tue, 10 Mar 2015 14:22:01 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 |
Am 05.03.2015 um 18:26 schrieb Eduardo Habkost:
> Instead of passing icc_bridge from the PC initialization code to
> cpu_x86_create(), make the PC initialization code attach the CPU to
> icc_bridge.
>
> The only difference here is that icc_bridge attachment will now be done
> after x86_cpu_parse_featurestr() is called. But this shouldn't make any
> difference, as property setters shouldn't depend on icc_bridge.
>
> Signed-off-by: Eduardo Habkost <address@hidden>
> ---
> hw/i386/pc.c | 6 +++++-
> target-i386/cpu.c | 14 ++------------
> target-i386/cpu.h | 3 +--
> 3 files changed, 8 insertions(+), 15 deletions(-)
>
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index ed54d93..66b9fa6 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -995,12 +995,16 @@ static X86CPU *pc_new_cpu(const char *cpu_model,
> int64_t apic_id,
> X86CPU *cpu;
> Error *local_err = NULL;
>
> - cpu = cpu_x86_create(cpu_model, icc_bridge, &local_err);
> + cpu = cpu_x86_create(cpu_model, &local_err);
> if (local_err != NULL) {
> error_propagate(errp, local_err);
> return NULL;
> }
>
> + assert(icc_bridge);
On second thoughts, why are you asserting here rather than setting errp?
Just add an out: below and goto out, like I did.
On startup it doesn't matter much, but for hot-add asserting would not
be so nice.
Regards,
Andreas
> + qdev_set_parent_bus(DEVICE(cpu), qdev_get_child_bus(icc_bridge, "icc"));
> + object_unref(OBJECT(cpu));
> +
> object_property_set_int(OBJECT(cpu), apic_id, "apic-id", &local_err);
> object_property_set_bool(OBJECT(cpu), true, "realized", &local_err);
>
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 50907d0..097924c 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -2076,8 +2076,7 @@ static void x86_cpu_load_def(X86CPU *cpu,
> X86CPUDefinition *def, Error **errp)
>
> }
>
> -X86CPU *cpu_x86_create(const char *cpu_model, DeviceState *icc_bridge,
> - Error **errp)
> +X86CPU *cpu_x86_create(const char *cpu_model, Error **errp)
> {
> X86CPU *cpu = NULL;
> X86CPUClass *xcc;
> @@ -2108,15 +2107,6 @@ X86CPU *cpu_x86_create(const char *cpu_model,
> DeviceState *icc_bridge,
>
> cpu = X86_CPU(object_new(object_class_get_name(oc)));
>
> -#ifndef CONFIG_USER_ONLY
> - if (icc_bridge == NULL) {
> - error_setg(&error, "Invalid icc-bridge value");
> - goto out;
> - }
> - qdev_set_parent_bus(DEVICE(cpu), qdev_get_child_bus(icc_bridge, "icc"));
> - object_unref(OBJECT(cpu));
> -#endif
> -
> x86_cpu_parse_featurestr(CPU(cpu), features, &error);
> if (error) {
> goto out;
[snip]
--
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Jennifer Guild, Dilip Upmanyu,
Graham Norton; HRB 21284 (AG Nürnberg)
- [Qemu-devel] [PATCH 0/1] target-i386: Move icc_bridge code to PC, Eduardo Habkost, 2015/03/05
- [Qemu-devel] [PATCH 1/1] target-i386: Remove icc_bridge parameter from cpu_x86_create(), Eduardo Habkost, 2015/03/05
- Re: [Qemu-devel] [PATCH 1/1] target-i386: Remove icc_bridge parameter from cpu_x86_create(), Andreas Färber, 2015/03/10
- Re: [Qemu-devel] [PATCH 1/1] target-i386: Remove icc_bridge parameter from cpu_x86_create(), Eduardo Habkost, 2015/03/10
- Re: [Qemu-devel] [PATCH 1/1] target-i386: Remove icc_bridge parameter from cpu_x86_create(), Andreas Färber, 2015/03/10
- Re: [Qemu-devel] [PATCH 1/1] target-i386: Remove icc_bridge parameter from cpu_x86_create(), Eduardo Habkost, 2015/03/10
- Re: [Qemu-devel] [PATCH 1/1] target-i386: Remove icc_bridge parameter from cpu_x86_create(), Andreas Färber, 2015/03/10
- Re: [Qemu-devel] [PATCH 1/1] target-i386: Remove icc_bridge parameter from cpu_x86_create(), Eduardo Habkost, 2015/03/10
Re: [Qemu-devel] [PATCH 1/1] target-i386: Remove icc_bridge parameter from cpu_x86_create(),
Andreas Färber <=