Message ID | 20180912125531.32131-7-marcandre.lureau@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hostmem-ram: use whole path for region name with >= 3.1 | expand |
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(). > } >
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); }
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(-)