[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 6/9] qom/object: set globals when initializing o
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [PATCH 6/9] qom/object: set globals when initializing object |
Date: |
Mon, 29 Oct 2018 13:20:30 +0100 |
On Wed, 12 Sep 2018 16:55:28 +0400
Marc-André Lureau <address@hidden> wrote:
> Set globals for all objects, although only TYPE_DEVICE &
> TYPE_USER_CREATABLE can have globals for now.
>
> Signed-off-by: Marc-André Lureau <address@hidden>
> ---
> hw/core/qdev.c | 6 ------
> qom/object.c | 2 ++
> 2 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/hw/core/qdev.c b/hw/core/qdev.c
> index 473060b551..28c6c8d7c9 100644
> --- a/hw/core/qdev.c
> +++ b/hw/core/qdev.c
> @@ -974,11 +974,6 @@ static void device_initfn(Object *obj)
> QLIST_INIT(&dev->gpios);
> }
>
> -static void device_post_init(Object *obj)
> -{
> - object_property_set_globals(obj);
> -}
> -
> /* Unlink device from bus and free the structure. */
> static void device_finalize(Object *obj)
> {
> @@ -1103,7 +1098,6 @@ static const TypeInfo device_type_info = {
> .parent = TYPE_OBJECT,
> .instance_size = sizeof(DeviceState),
> .instance_init = device_initfn,
> - .instance_post_init = device_post_init,
> .instance_finalize = device_finalize,
> .class_base_init = device_class_base_init,
> .class_init = device_class_init,
> diff --git a/qom/object.c b/qom/object.c
> index 0703e8e4ff..025ad0e191 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -12,6 +12,7 @@
>
> #include "qemu/osdep.h"
> #include "qapi/error.h"
> +#include "qom/globals.h"
> #include "qom/object.h"
> #include "qom/object_interfaces.h"
> #include "qemu/cutils.h"
> @@ -382,6 +383,7 @@ static void object_initialize_with_type(void *data,
> size_t size, TypeImpl *type)
> obj->properties = g_hash_table_new_full(g_str_hash, g_str_equal,
> NULL, object_property_free);
> object_init_with_type(obj, type);
> + object_property_set_globals(obj);
> object_post_init_with_type(obj, type);
this would somewhat inverse post_init call chain,
if there weren't any other instance_post_init() users that would be fine
but it potentially can break arm_cpu_post_init() since globals would be
set before the later finishes creating per instance properties.
arm cpu feature setting code is spread across initfn/post_init/realize
and it's unreadable mess.
Maybe we should get rid of instance_post_init() altogether and explicitly
call arm_cpu_post_init() from each initfn().
> }
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH 6/9] qom/object: set globals when initializing object,
Igor Mammedov <=