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