Message ID | 20231018141151.87466-11-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | hw: Strengthen SysBus & QBus API | expand |
On 18/10/2023 16.11, Philippe Mathieu-Daudé wrote: > qbus_new() should not be called on realized device. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > hw/core/bus.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/hw/core/bus.c b/hw/core/bus.c > index c7831b5293..c92d07667b 100644 > --- a/hw/core/bus.c > +++ b/hw/core/bus.c > @@ -21,6 +21,7 @@ > #include "hw/qdev-properties.h" > #include "qemu/ctype.h" > #include "qemu/module.h" > +#include "qemu/error-report.h" > #include "qapi/error.h" > > void qbus_set_hotplug_handler(BusState *bus, Object *handler) > @@ -163,6 +164,12 @@ BusState *qbus_new(const char *typename, DeviceState *parent, const char *name) > { > BusState *bus; > > + if (parent->realized) { > + error_report("qbus_new(type:%s parent:%s, name:%s) but parent realized", > + typename, object_get_typename(OBJECT(parent)), name); > + abort(); > + } > + > bus = BUS(object_new(typename)); > qbus_init_internal(bus, parent, name); > Sounds like a good idea! Reviewed-by: Thomas Huth <thuth@redhat.com>
diff --git a/hw/core/bus.c b/hw/core/bus.c index c7831b5293..c92d07667b 100644 --- a/hw/core/bus.c +++ b/hw/core/bus.c @@ -21,6 +21,7 @@ #include "hw/qdev-properties.h" #include "qemu/ctype.h" #include "qemu/module.h" +#include "qemu/error-report.h" #include "qapi/error.h" void qbus_set_hotplug_handler(BusState *bus, Object *handler) @@ -163,6 +164,12 @@ BusState *qbus_new(const char *typename, DeviceState *parent, const char *name) { BusState *bus; + if (parent->realized) { + error_report("qbus_new(type:%s parent:%s, name:%s) but parent realized", + typename, object_get_typename(OBJECT(parent)), name); + abort(); + } + bus = BUS(object_new(typename)); qbus_init_internal(bus, parent, name);
qbus_new() should not be called on realized device. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/core/bus.c | 7 +++++++ 1 file changed, 7 insertions(+)