[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 10/11] cpu: do not use object_delete
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH 10/11] cpu: do not use object_delete |
Date: |
Tue, 18 Dec 2012 22:07:55 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 |
Am 05.12.2012 21:44, schrieb Paolo Bonzini:
> CPUs are never added to the composition tree, so delete is achieved
> simply by removing the last references to them.
>
> Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Andreas Färber <address@hidden>
Note however that x86 is undergoing major changes and other targets are
growing needs to ... "deconstruct" :) CPUs, too. So this is very likely
to conflict. As I understand it, I can't just unparent a CPU today as it
would not get freed?
Andreas
> ---
> linux-user/syscall.c | 2 +-
> target-i386/helper.c | 4 ++--
> target-sparc/cpu.c | 2 +-
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index e4291ed..64b2610 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -5188,7 +5188,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long
> arg1,
> NULL, NULL, 0);
> }
> thread_env = NULL;
> - object_delete(OBJECT(ENV_GET_CPU(cpu_env)));
> + object_unref(OBJECT(ENV_GET_CPU(cpu_env)));
> g_free(ts);
> pthread_exit(NULL);
> }
> diff --git a/target-i386/helper.c b/target-i386/helper.c
> index bf206cf..d628352 100644
> --- a/target-i386/helper.c
> +++ b/target-i386/helper.c
> @@ -1251,14 +1251,14 @@ X86CPU *cpu_x86_init(const char *cpu_model)
> env->cpu_model_str = cpu_model;
>
> if (cpu_x86_register(cpu, cpu_model) < 0) {
> - object_delete(OBJECT(cpu));
> + object_unref(OBJECT(cpu));
> return NULL;
> }
>
> x86_cpu_realize(OBJECT(cpu), &error);
> if (error) {
> error_free(error);
> - object_delete(OBJECT(cpu));
> + object_unref(OBJECT(cpu));
> return NULL;
> }
> return cpu;
> diff --git a/target-sparc/cpu.c b/target-sparc/cpu.c
> index 882d306..b38641b 100644
> --- a/target-sparc/cpu.c
> +++ b/target-sparc/cpu.c
> @@ -119,7 +119,7 @@ SPARCCPU *cpu_sparc_init(const char *cpu_model)
> }
>
> if (cpu_sparc_register(env, cpu_model) < 0) {
> - object_delete(OBJECT(cpu));
> + object_unref(OBJECT(cpu));
> return NULL;
> }
> qemu_init_vcpu(env);
--
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 03/11] qom: preserve object while unparenting it, (continued)
- [Qemu-devel] [PATCH 03/11] qom: preserve object while unparenting it, Paolo Bonzini, 2012/12/05
- [Qemu-devel] [PATCH 04/11] qdev: add reference count to a device for the BusChild, Paolo Bonzini, 2012/12/05
- [Qemu-devel] [PATCH 05/11] qdev: move deletion of children from finalize to unparent, Paolo Bonzini, 2012/12/05
- [Qemu-devel] [PATCH 06/11] qdev: move unrealization of devices from finalize to unparent, Paolo Bonzini, 2012/12/05
- [Qemu-devel] [PATCH 07/11] qdev: add reference for the bus while it is referred to by the DeviceState, Paolo Bonzini, 2012/12/05
- [Qemu-devel] [PATCH 08/11] qdev: inline object_delete into qbus_free/qdev_free, Paolo Bonzini, 2012/12/05
- [Qemu-devel] [PATCH 09/11] qdev: drop extra references at creation time, Paolo Bonzini, 2012/12/05
- [Qemu-devel] [PATCH 11/11] qom: remove object_delete, Paolo Bonzini, 2012/12/05
- [Qemu-devel] [PATCH 10/11] cpu: do not use object_delete, Paolo Bonzini, 2012/12/05
- Re: [Qemu-devel] [PATCH 10/11] cpu: do not use object_delete,
Andreas Färber <=
- Re: [Qemu-devel] [PATCH 00/11] qdev: correct reference counting, Paolo Bonzini, 2012/12/17