req_vq/event_vq forgot to free in unrealize. Fix that. And aslo do clean 's->as_by_busptr' hash table in unrealize to fix another leak.
Signed-off-by: Pan Nengyuan <pannengy...@huawei.com> Acked-by: Eric Auger <eric.au...@redhat.com> --- Cc: Eric Auger <eric.au...@redhat.com> --- v3->v1/v2: - Aslo clean 's->as_by_busptr' hash table in unrealize.(Suggested by Stefano Garzarella) --- hw/virtio/virtio-iommu.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index 4cee8083bc..694698fa0f 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -696,7 +696,10 @@ static void virtio_iommu_device_unrealize(DeviceState *dev, Error **errp) g_tree_destroy(s->domains); g_tree_destroy(s->endpoints); + virtio_delete_queue(s->req_vq); + virtio_delete_queue(s->event_vq); virtio_cleanup(vdev); + g_hash_table_destroy(s->as_by_busptr); } static void virtio_iommu_device_reset(VirtIODevice *vdev) -- 2.18.2