Message ID | 20200529134523.8477-47-armbru@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | qdev: Rework how we plug into the parent bus | expand |
On 5/29/20 3:45 PM, Markus Armbruster wrote: > The "null @bus means main system bus" convenience feature is no longer > used. Drop it. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > hw/core/qdev.c | 16 ++-------------- > 1 file changed, 2 insertions(+), 14 deletions(-) > > diff --git a/hw/core/qdev.c b/hw/core/qdev.c > index a1fdebb3aa..78a06db76e 100644 > --- a/hw/core/qdev.c > +++ b/hw/core/qdev.c > @@ -408,8 +408,7 @@ void qdev_init_nofail(DeviceState *dev) > /* > * Realize @dev. > * @dev must not be plugged into a bus. > - * Plug @dev into @bus if non-null, else into the main system bus. > - * This takes a reference to @dev. > + * Plug @dev into @bus. This takes a reference to @dev. > * If @dev has no QOM parent, make one up, taking another reference. > * On success, return true. > * On failure, store an error through @errp and return false. > @@ -419,18 +418,7 @@ bool qdev_realize(DeviceState *dev, BusState *bus, Error **errp) > Error *err = NULL; > > assert(!dev->realized && !dev->parent_bus); > - > - if (!bus) { > - /* > - * Assert that the device really is a SysBusDevice before we > - * put it onto the sysbus. Non-sysbus devices which aren't > - * being put onto a bus should be realized with > - * object_property_set_bool(OBJECT(dev), true, "realized", > - * errp); > - */ > - g_assert(object_dynamic_cast(OBJECT(dev), TYPE_SYS_BUS_DEVICE)); > - bus = sysbus_get_default(); > - } > + assert(bus); Hmm what about renaming that to sysbus_init_nofail() and keep qdev_init_nofail() (without the bus part)? > > qdev_set_parent_bus(dev, bus); > >
Philippe Mathieu-Daudé <philmd@redhat.com> writes: > On 5/29/20 3:45 PM, Markus Armbruster wrote: >> The "null @bus means main system bus" convenience feature is no longer >> used. Drop it. >> >> Signed-off-by: Markus Armbruster <armbru@redhat.com> >> --- >> hw/core/qdev.c | 16 ++-------------- >> 1 file changed, 2 insertions(+), 14 deletions(-) >> >> diff --git a/hw/core/qdev.c b/hw/core/qdev.c >> index a1fdebb3aa..78a06db76e 100644 >> --- a/hw/core/qdev.c >> +++ b/hw/core/qdev.c >> @@ -408,8 +408,7 @@ void qdev_init_nofail(DeviceState *dev) >> /* >> * Realize @dev. >> * @dev must not be plugged into a bus. >> - * Plug @dev into @bus if non-null, else into the main system bus. >> - * This takes a reference to @dev. >> + * Plug @dev into @bus. This takes a reference to @dev. >> * If @dev has no QOM parent, make one up, taking another reference. >> * On success, return true. >> * On failure, store an error through @errp and return false. >> @@ -419,18 +418,7 @@ bool qdev_realize(DeviceState *dev, BusState *bus, Error **errp) >> Error *err = NULL; >> >> assert(!dev->realized && !dev->parent_bus); >> - >> - if (!bus) { >> - /* >> - * Assert that the device really is a SysBusDevice before we >> - * put it onto the sysbus. Non-sysbus devices which aren't >> - * being put onto a bus should be realized with >> - * object_property_set_bool(OBJECT(dev), true, "realized", >> - * errp); >> - */ >> - g_assert(object_dynamic_cast(OBJECT(dev), TYPE_SYS_BUS_DEVICE)); >> - bus = sysbus_get_default(); >> - } >> + assert(bus); > > Hmm what about renaming that to sysbus_init_nofail() and keep > qdev_init_nofail() (without the bus part)? I'm dense. What are you proposing? >> >> qdev_set_parent_bus(dev, bus); >> >>
diff --git a/hw/core/qdev.c b/hw/core/qdev.c index a1fdebb3aa..78a06db76e 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -408,8 +408,7 @@ void qdev_init_nofail(DeviceState *dev) /* * Realize @dev. * @dev must not be plugged into a bus. - * Plug @dev into @bus if non-null, else into the main system bus. - * This takes a reference to @dev. + * Plug @dev into @bus. This takes a reference to @dev. * If @dev has no QOM parent, make one up, taking another reference. * On success, return true. * On failure, store an error through @errp and return false. @@ -419,18 +418,7 @@ bool qdev_realize(DeviceState *dev, BusState *bus, Error **errp) Error *err = NULL; assert(!dev->realized && !dev->parent_bus); - - if (!bus) { - /* - * Assert that the device really is a SysBusDevice before we - * put it onto the sysbus. Non-sysbus devices which aren't - * being put onto a bus should be realized with - * object_property_set_bool(OBJECT(dev), true, "realized", - * errp); - */ - g_assert(object_dynamic_cast(OBJECT(dev), TYPE_SYS_BUS_DEVICE)); - bus = sysbus_get_default(); - } + assert(bus); qdev_set_parent_bus(dev, bus);
The "null @bus means main system bus" convenience feature is no longer used. Drop it. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- hw/core/qdev.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-)