qemu/hw/virtio
Pan Nengyuan ba07cf5d3f vhost-user-fs: do delete virtio_queues in unrealize
Similar to other virtio device(https://patchwork.kernel.org/patch/11399237/), virtio queues forgot to delete in unrealize, and aslo error path in realize, this patch fix these memleaks, the leak stack is as follow:
Direct leak of 57344 byte(s) in 1 object(s) allocated from:
    #0 0x7f15784fb970 in __interceptor_calloc (/lib64/libasan.so.5+0xef970)
    #1 0x7f157790849d in g_malloc0 (/lib64/libglib-2.0.so.0+0x5249d)
    #2 0x55587a1bf859 in virtio_add_queue /mnt/sdb/qemu-new/qemu_test/qemu/hw/virtio/virtio.c:2333
    #3 0x55587a2071d5 in vuf_device_realize /mnt/sdb/qemu-new/qemu_test/qemu/hw/virtio/vhost-user-fs.c:212
    #4 0x55587a1ae360 in virtio_device_realize /mnt/sdb/qemu-new/qemu_test/qemu/hw/virtio/virtio.c:3531
    #5 0x55587a63fb7b in device_set_realized /mnt/sdb/qemu-new/qemu_test/qemu/hw/core/qdev.c:891
    #6 0x55587acf03f5 in property_set_bool /mnt/sdb/qemu-new/qemu_test/qemu/qom/object.c:2238
    #7 0x55587acfce0d in object_property_set_qobject /mnt/sdb/qemu-new/qemu_test/qemu/qom/qom-qobject.c:26
    #8 0x55587acf5c8c in object_property_set_bool /mnt/sdb/qemu-new/qemu_test/qemu/qom/object.c:1390
    #9 0x55587a8e22a2 in pci_qdev_realize /mnt/sdb/qemu-new/qemu_test/qemu/hw/pci/pci.c:2095
    #10 0x55587a63fb7b in device_set_realized /mnt/sdb/qemu-new/qemu_test/qemu/hw/core/qdev.c:891
    #11 0x55587acf03f5 in property_set_bool /mnt/sdb/qemu-new/qemu_test/qemu/qom/object.c:2238
    #12 0x55587acfce0d in object_property_set_qobject /mnt/sdb/qemu-new/qemu_test/qemu/qom/qom-qobject.c:26
    #13 0x55587acf5c8c in object_property_set_bool /mnt/sdb/qemu-new/qemu_test/qemu/qom/object.c:1390
    #14 0x55587a496d65 in qdev_device_add /mnt/sdb/qemu-new/qemu_test/qemu/qdev-monitor.c:679

Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200225075554.10835-2-pannengyuan@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2020-02-25 08:32:45 -05:00
..
Kconfig configure: simplify vhost condition with Kconfig 2019-12-17 19:32:48 +01:00
Makefile.objs configure: simplify vhost condition with Kconfig 2019-12-17 19:32:48 +01:00
trace-events hw/virtio/virtio-mmio: Convert DPRINTF to trace and log 2019-05-22 15:33:20 +02:00
vhost-backend.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
vhost-scsi-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vhost-stub.c vhost-user: simplify vhost_user_init/vhost_user_cleanup 2019-03-12 21:22:31 -04:00
vhost-user-blk-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vhost-user-fs-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vhost-user-fs.c vhost-user-fs: do delete virtio_queues in unrealize 2020-02-25 08:32:45 -05:00
vhost-user-input-pci.c Add vhost-user-input-pci 2019-05-10 14:52:47 +02:00
vhost-user-scsi-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vhost-user.c vhost-user: Print unexpected slave message types 2020-01-23 16:41:37 +00:00
vhost-vsock-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vhost-vsock.c * Register qdev properties as class properties (Marc-André) 2020-01-27 09:44:04 +00:00
vhost.c vhost: coding style fix 2020-01-23 02:08:15 -05:00
virtio-9p-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-balloon-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-balloon.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-blk-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-bus.c virtio: notify virtqueue via host notifier when available 2019-11-06 06:35:00 -05:00
virtio-crypto-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-crypto.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-input-host-pci.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
virtio-input-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-mmio.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-net-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-pci.h virtio-pci: Add Function Level Reset support 2019-09-04 06:33:10 -04:00
virtio-pmem-pci.c virtio pmem: remove transitional names 2019-07-12 10:57:27 -04:00
virtio-pmem-pci.h virtio-pci: Proxy for virtio-pmem 2019-07-04 17:00:32 -04:00
virtio-pmem.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-rng-pci.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
virtio-rng.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-scsi-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-serial-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00