On 13.07.2018 19:13, Paolo Bonzini wrote: > On 13/07/2018 17:59, Thomas Huth wrote: >> Your patch looks good at a first quick glance, but it seems not to work as >> expected: When I now run QEMU like this: >> >> echo "{'execute':'qmp_capabilities'}" \ >> "{'execute':'device-list-properties'," \ >> "'arguments':{'typename':'xlnx,zynqmp'}}" \ >> "{'execute': 'human-monitor-command', " \ >> "'arguments': {'command-line': 'info qtree'}}" | \ >> aarch64-softmmu/qemu-system-aarch64 -M none,accel=qtest -qmp stdio >> >> then QEMU ends up in an endless loop and I've got to kill it. > > There are two more bugs that my patch makes un-latent, where the > objects are created but not added as children. Therefore when > you call object_unparent on them, nothing happens. > > In particular dpcd and edid give you an infinite loop in bus_unparent, > because device_unparent is not called and does not remove them from > the list of devices on the bus. > > The following incremental changes fix everything for me. Note that > aux_create_slave/qdev_create already do the unref for you.
Thanks, that fixes the problem, indeed. I'll squash this into your patch and send out a v3 series. Thomas