From: Longpeng <longpe...@huawei.com> Implements the .unrealize interface.
Signed-off-by: Longpeng <longpe...@huawei.com> --- hw/virtio/vdpa-dev.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c index 4defe6c33d..1713818bc3 100644 --- a/hw/virtio/vdpa-dev.c +++ b/hw/virtio/vdpa-dev.c @@ -167,7 +167,23 @@ out: static void vhost_vdpa_device_unrealize(DeviceState *dev) { - return; + VirtIODevice *vdev = VIRTIO_DEVICE(dev); + VhostVdpaDevice *s = VHOST_VDPA_DEVICE(vdev); + int i; + + virtio_set_status(vdev, 0); + + for (i = 0; i < s->num_queues; i++) { + virtio_delete_queue(s->virtqs[i]); + } + g_free(s->virtqs); + virtio_cleanup(vdev); + + g_free(s->config); + g_free(s->dev.vqs); + vhost_dev_cleanup(&s->dev); + qemu_close(s->vdpa_dev_fd); + s->vdpa_dev_fd = -1; } static void -- 2.23.0