diff options
author | Xie Yongji <xieyongji@baidu.com> | 2019-07-17 08:46:05 +0800 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2019-07-19 19:04:49 +0200 |
commit | 934443c37befc9e268f5c661cb9552a2ee572e19 (patch) | |
tree | 6639480b223301b2eee6a5d4cbad041ea0f2b3bd /hw/scsi | |
parent | 12e1dc49395674960efec967ca4161428c08307a (diff) | |
download | qemu-934443c37befc9e268f5c661cb9552a2ee572e19.zip qemu-934443c37befc9e268f5c661cb9552a2ee572e19.tar.gz qemu-934443c37befc9e268f5c661cb9552a2ee572e19.tar.bz2 |
vhost-scsi: Call virtio_scsi_common_unrealize() when device realize failed
This avoids memory leak when device hotplug is failed.
Signed-off-by: Xie Yongji <xieyongji@baidu.com>
Message-Id: <20190717004606.12444-1-xieyongji@baidu.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/scsi')
-rw-r--r-- | hw/scsi/vhost-scsi.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c index 76bb875..343ca8b 100644 --- a/hw/scsi/vhost-scsi.c +++ b/hw/scsi/vhost-scsi.c @@ -210,7 +210,7 @@ static void vhost_scsi_realize(DeviceState *dev, Error **errp) if (err) { error_propagate(errp, err); error_free(vsc->migration_blocker); - goto close_fd; + goto free_virtio; } } @@ -240,6 +240,8 @@ static void vhost_scsi_realize(DeviceState *dev, Error **errp) migrate_del_blocker(vsc->migration_blocker); } g_free(vsc->dev.vqs); + free_virtio: + virtio_scsi_common_unrealize(dev); close_fd: close(vhostfd); return; |