diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2014-10-29 11:17:19 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2014-10-30 12:59:27 +0000 |
commit | cbd5ac699173b684e678d66df3aea33df81fd89f (patch) | |
tree | 8df89714ea7855b5ef2f9d490952aa929a6f8fbc /hw/virtio | |
parent | 3e9418e160cd8901c83a3c88967158084f5b5c03 (diff) | |
download | qemu-cbd5ac699173b684e678d66df3aea33df81fd89f.tar.gz qemu-cbd5ac699173b684e678d66df3aea33df81fd89f.tar.bz2 qemu-cbd5ac699173b684e678d66df3aea33df81fd89f.zip |
virtio: link the rng backend through an alias property
The virtio-rng backend is currently linked twice, once in the proxy
device (e.g. virtio-rng-pci) and once in virtio-rng-device. This causes
a double unref of the backend when the parent device is unplugged.
To fix this, make the proxy device use an alias, similar to what is
already being done for the iothread link.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Gonglei <arei.gonglei@huawei.com>
Message-id: 1414577839-18695-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/virtio')
-rw-r--r-- | hw/virtio/virtio-pci.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index 542fb9e279..e490adeb80 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -1525,11 +1525,8 @@ static void virtio_rng_initfn(Object *obj) virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev), TYPE_VIRTIO_RNG); - object_property_add_link(obj, "rng", TYPE_RNG_BACKEND, - (Object **)&dev->vdev.conf.rng, - qdev_prop_allow_set_link_before_realize, - OBJ_PROP_LINK_UNREF_ON_RELEASE, NULL); - + object_property_add_alias(obj, "rng", OBJECT(&dev->vdev), "rng", + &error_abort); } static const TypeInfo virtio_rng_pci_info = { |