From: Igor Mammedov <imammedo@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
"Eduardo Habkost" <ehabkost@redhat.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
dgilbert@redhat.com, "Richard Henderson" <rth@twiddle.net>,
"Andreas Färber" <afaerber@suse.de>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Artyom Tarasenko" <atar4qemu@gmail.com>,
"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>
Subject: Re: [Qemu-devel] [PATCH 6/9] qom/object: set globals when initializing object
Date: Mon, 29 Oct 2018 13:20:30 +0100 [thread overview]
Message-ID: <20181029132030.431ea221@redhat.com> (raw)
In-Reply-To: <20180912125531.32131-7-marcandre.lureau@redhat.com>
On Wed, 12 Sep 2018 16:55:28 +0400
Marc-André Lureau <marcandre.lureau@redhat.com> wrote:
> Set globals for all objects, although only TYPE_DEVICE &
> TYPE_USER_CREATABLE can have globals for now.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> 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().
> }
>
next prev parent reply other threads:[~2018-10-29 12:20 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-12 12:55 [Qemu-devel] [PATCH 0/9] hostmem-ram: use whole path for region name with >= 3.1 Marc-André Lureau
2018-09-12 12:55 ` [Qemu-devel] [PATCH 1/9] qom/user-creatable: add a few helper macros Marc-André Lureau
2018-10-22 14:33 ` Igor Mammedov
2018-10-26 15:13 ` Eduardo Habkost
2018-10-29 9:56 ` Igor Mammedov
2018-10-30 1:37 ` Eduardo Habkost
2018-10-30 9:26 ` Marc-André Lureau
2018-10-30 14:22 ` Igor Mammedov
2018-10-30 23:07 ` Eduardo Habkost
2018-11-01 12:16 ` Igor Mammedov
2018-11-01 15:02 ` Eduardo Habkost
2018-11-01 15:46 ` Igor Mammedov
2018-09-12 12:55 ` [Qemu-devel] [PATCH 2/9] accel: register global_props like machine globals Marc-André Lureau
2018-10-22 14:47 ` Igor Mammedov
2018-10-22 14:47 ` [Qemu-devel] " Igor Mammedov
2018-09-12 12:55 ` [Qemu-devel] [PATCH 3/9] qdev: move qdev_prop_register_global_list() to tests Marc-André Lureau
2018-10-22 14:51 ` Igor Mammedov
2018-09-12 12:55 ` [Qemu-devel] [PATCH 4/9] qom/globals: move qdev globals to qom Marc-André Lureau
2018-09-12 12:55 ` [Qemu-devel] [PATCH 5/9] qom/globals: generalize object_property_set_globals() Marc-André Lureau
2018-10-29 13:11 ` Igor Mammedov
2018-10-30 12:16 ` Marc-André Lureau
2018-10-30 14:05 ` Igor Mammedov
2018-09-12 12:55 ` [Qemu-devel] [PATCH 6/9] qom/object: set globals when initializing object Marc-André Lureau
2018-10-29 12:20 ` Igor Mammedov [this message]
2018-09-12 12:55 ` [Qemu-devel] [PATCH 7/9] tests: add user-creatable test to test-qdev-global-props Marc-André Lureau
2018-09-12 12:55 ` [Qemu-devel] [PATCH 8/9] hw/i386: add pc-i440fx-3.1 & pc-q35-3.1 Marc-André Lureau
2018-09-12 12:55 ` [Qemu-devel] [PATCH 9/9] hostmem-ram: use whole path for memory region name with >= 3.1 Marc-André Lureau
2018-09-13 10:19 ` Dr. David Alan Gilbert
2018-10-29 15:16 ` Igor Mammedov
2018-10-02 10:24 ` [Qemu-devel] [PATCH 0/9] hostmem-ram: use whole path for " Marc-André Lureau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181029132030.431ea221@redhat.com \
--to=imammedo@redhat.com \
--cc=afaerber@suse.de \
--cc=atar4qemu@gmail.com \
--cc=dgilbert@redhat.com \
--cc=ehabkost@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.