Commit 510ef98d authored by Markus Armbruster's avatar Markus Armbruster
Browse files

qdev: Make qdev_realize() support bus-less devices



So far, qdev_realize() supports only devices that plug into a bus:
argument @bus cannot be null.  Extend it to support bus-less devices,
too.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Message-Id: <20200610053247.1583243-55-armbru@redhat.com>
parent 1afec9e8
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -408,7 +408,7 @@ void qdev_init_nofail(DeviceState *dev)
/*
 * Realize @dev.
 * @dev must not be plugged into a bus.
 * Plug @dev into @bus.  This takes a reference to @dev.
 * If @bus, 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.
@@ -418,9 +418,12 @@ bool qdev_realize(DeviceState *dev, BusState *bus, Error **errp)
    Error *err = NULL;

    assert(!dev->realized && !dev->parent_bus);
    assert(bus);

    if (bus) {
        qdev_set_parent_bus(dev, bus);
    } else {
        assert(!DEVICE_GET_CLASS(dev)->bus_type);
    }

    object_property_set_bool(OBJECT(dev), true, "realized", &err);
    if (err) {