qdev: add reference for the bus while it is referred to by the DeviceState
Now that the unparent callbacks are complete, we can correctly account more missing references. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
06f7f2bb56
commit
62d7ba669d
@ -100,6 +100,7 @@ static void bus_add_child(BusState *bus, DeviceState *child)
|
|||||||
void qdev_set_parent_bus(DeviceState *dev, BusState *bus)
|
void qdev_set_parent_bus(DeviceState *dev, BusState *bus)
|
||||||
{
|
{
|
||||||
dev->parent_bus = bus;
|
dev->parent_bus = bus;
|
||||||
|
object_ref(OBJECT(bus));
|
||||||
bus_add_child(bus, dev);
|
bus_add_child(bus, dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -773,6 +774,8 @@ static void device_unparent(Object *obj)
|
|||||||
}
|
}
|
||||||
if (dev->parent_bus) {
|
if (dev->parent_bus) {
|
||||||
bus_remove_child(dev->parent_bus, dev);
|
bus_remove_child(dev->parent_bus, dev);
|
||||||
|
object_unref(OBJECT(dev->parent_bus));
|
||||||
|
dev->parent_bus = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user