diff options
author | Igor Mammedov <imammedo@redhat.com> | 2015-07-30 15:29:59 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-07-30 15:45:07 +0200 |
commit | af103c9310b7ab56a2552965d9d1274b0024f27b (patch) | |
tree | 6766c15b9743f7aaf249b18a3c95c66e122d0b5e /hw | |
parent | 975b66555cb56af453c6852e7e821e2451700527 (diff) | |
download | qemu-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')
-rw-r--r-- | hw/scsi/vhost-scsi.c | 1 |
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); |