From 919aa3d3740d11412ea18a200765a0df817f4736 Mon Sep 17 00:00:00 2001 From: Jian Jun Chen Date: Mon, 16 Apr 2018 10:35:58 +0800 Subject: [PATCH] dm: virtio-input: implement virtio_input_deinit All related resources are freed in virtio_input_deinit. Signed-off-by: Jian Jun Chen Reviewed-by: Yin Fengwei Reviewed-by: Zhao Yakui Reviewed-by: Hao Li Acked-by: Eddie Dong --- devicemodel/hw/pci/virtio/virtio_input.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/devicemodel/hw/pci/virtio/virtio_input.c b/devicemodel/hw/pci/virtio/virtio_input.c index 00cb202ab..476b83141 100644 --- a/devicemodel/hw/pci/virtio/virtio_input.c +++ b/devicemodel/hw/pci/virtio/virtio_input.c @@ -691,7 +691,24 @@ fail: static void virtio_input_deinit(struct vmctx *ctx, struct pci_vdev *dev, char *opts) { - /* to be implemented */ + struct virtio_input *vi; + + vi = (struct virtio_input *)dev->arg; + if (vi) { + pthread_mutex_destroy(&vi->mtx); + if (vi->event_queue) + free(vi->event_queue); + if (vi->mevp) + mevent_delete(vi->mevp); + if (vi->fd > 0) + close(vi->fd); + if (vi->evdev) + free(vi->evdev); + if (vi->serial) + free(vi->serial); + free(vi); + vi = NULL; + } } struct pci_vdev_ops pci_ops_virtio_input = {