]> git.proxmox.com Git - mirror_qemu.git/commit
hw/misc/macio: Fix device introspection problems in macio devices
authorThomas Huth <thuth@redhat.com>
Tue, 17 Jul 2018 14:51:54 +0000 (16:51 +0200)
committerDavid Gibson <david@gibson.dropbear.id.au>
Tue, 31 Jul 2018 23:48:40 +0000 (09:48 +1000)
commit1069a3c6e1176001116116629427550f138d68a4
tree4adbf85dc5e9cbc143fe59a40c5a4b569dceebd8
parentf7502360397d291be04bc040e9f96c92ff2d8030
hw/misc/macio: Fix device introspection problems in macio devices

Valgrind reports an error when introspecting the macio devices, e.g.:

echo "{'execute':'qmp_capabilities'} {'execute':'device-list-properties'," \
 "'arguments':{'typename':'macio-newworld'}}" \
 "{'execute': 'human-monitor-command', " \
 "'arguments': {'command-line': 'info qtree'}}" | \
 valgrind -q ppc64-softmmu/qemu-system-ppc64 -M none,accel=qtest -qmp stdio
[...]
==30768== Invalid read of size 8
==30768==    at 0x5BC1EA: qdev_print (qdev-monitor.c:686)
==30768==    by 0x5BC1EA: qbus_print (qdev-monitor.c:719)
==30768==    by 0x43E458: handle_hmp_command (monitor.c:3446)
[...]

Use the new function sysbus_init_child_obj() to initialize the objects
here, to get the reference counting of the objects right, so that they
are cleaned up correctly when the parent gets removed.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/misc/macio/cuda.c
hw/misc/macio/macio.c
hw/misc/macio/pmu.c