On 7/7/20 11:47 AM, Paolo Bonzini wrote: > On 07/07/20 05:33, Philippe Mathieu-Daudé wrote: >> Since commit 510ef98dca5, qdev_realize() aborts if bus-less device >> is realized on a bus. While commits 514db7710b..007d1dbf72 took >> care of converting all mainstream uses, QEMU forks weren't. These >> forks are usually maintained by hobbyist with interest in following >> mainstream development, but with limited time, so usually rebase >> from time to time. To avoid them to spend time on debugging and >> reading git-log history, display a kind hint about what is wrong. >> >> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> >> --- >> Since v2: >> - scratch __func__ (armbru) >> - reword to justify this is not an impossible case (armbru) >> --- >> hw/core/qdev.c | 7 +++++-- >> 1 file changed, 5 insertions(+), 2 deletions(-) >> >> diff --git a/hw/core/qdev.c b/hw/core/qdev.c >> index 2131c7f951..a16f1270f1 100644 >> --- a/hw/core/qdev.c >> +++ b/hw/core/qdev.c >> @@ -392,8 +392,11 @@ bool qdev_realize(DeviceState *dev, BusState *bus, >> Error **errp) >> >> if (bus) { >> qdev_set_parent_bus(dev, bus); >> - } else { >> - assert(!DEVICE_GET_CLASS(dev)->bus_type); >> + } else if (DEVICE_GET_CLASS(dev)->bus_type) { >> + error_setg(errp, "Unexpected bus '%s' for bus-less device '%s'", >> + DEVICE_GET_CLASS(dev)->bus_type, >> + object_get_typename(OBJECT(dev))); >> + return false; >> } >> >> object_property_set_bool(OBJECT(dev), true, "realized", &err); >> > > Queued, thanks.
Thanks! I haven't see that and sent a v4 with example included & typo fixed, if possible can you take it instead? https://patchew.org/QEMU/20200727175112.6820-1-f4...@amsat.org/ > > Paolo > >