aboutsummaryrefslogtreecommitdiff
path: root/hw/scsi/vhost-scsi.c
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2015-07-30 15:29:59 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2015-07-30 15:45:07 +0200
commitaf103c9310b7ab56a2552965d9d1274b0024f27b (patch)
tree6766c15b9743f7aaf249b18a3c95c66e122d0b5e /hw/scsi/vhost-scsi.c
parent975b66555cb56af453c6852e7e821e2451700527 (diff)
downloadqemu-af103c9310b7ab56a2552965d9d1274b0024f27b.zip
qemu-af103c9310b7ab56a2552965d9d1274b0024f27b.tar.gz
qemu-af103c9310b7ab56a2552965d9d1274b0024f27b.tar.bz2
vhost/scsi: call vhost_dev_cleanup() at unrealize() time
vhost-scsi calls vhost_dev_init() at realize() time but forgets to call it's counterpart vhost_dev_cleanup() at unrealize() time. Calling it should fix leaking of memory table and mem_sections table in vhost device. And also unregister vhost's memory listerner to prevent access from memory core to freed memory. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <1438262999-287627-1-git-send-email-imammedo@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/scsi/vhost-scsi.c')
-rw-r--r--hw/scsi/vhost-scsi.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c
index a69918b..0dd57ff 100644
--- a/hw/scsi/vhost-scsi.c
+++ b/hw/scsi/vhost-scsi.c
@@ -277,6 +277,7 @@ static void vhost_scsi_unrealize(DeviceState *dev, Error **errp)
/* This will stop vhost backend. */
vhost_scsi_set_status(vdev, 0);
+ vhost_dev_cleanup(&s->dev);
g_free(s->dev.vqs);
virtio_scsi_common_unrealize(dev, errp);