Set globals for all objects, although only TYPE_DEVICE & TYPE_USER_CREATABLE can have globals for now. Replaces the qdev post-init callback (which was the last called in the hierarchy order) by an explicit call during object creation after post-init, to maintain the call ordering.
Signed-off-by: Marc-André Lureau <marcandre.lur...@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 09a2c4df62..6a25fa027c 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -970,11 +970,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) { @@ -1098,7 +1093,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 eb770dbf7f..7300878125 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" @@ -390,6 +391,7 @@ static void object_initialize_with_type(void *data, size_t size, TypeImpl *type) NULL, object_property_free); object_init_with_type(obj, type); object_post_init_with_type(obj, type); + object_property_set_globals(obj); } void object_initialize(void *data, size_t size, const char *typename) -- 2.19.0.271.gfe8321ec05