[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 12/53] vhost-user-i2c: Back up vqs before cleaning up vhost_dev
From: |
Michael S. Tsirkin |
Subject: |
[PULL 12/53] vhost-user-i2c: Back up vqs before cleaning up vhost_dev |
Date: |
Thu, 2 Mar 2023 03:25:08 -0500 |
From: Akihiko Odaki <akihiko.odaki@daynix.com>
vhost_dev_cleanup() clears vhost_dev so back up its vqs member to free
the memory pointed by the member.
Fixes: 7221d3b634 ("hw/virtio: add boilerplate for vhost-user-i2c device")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230130140435.78049-1-akihiko.odaki@daynix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/virtio/vhost-user-i2c.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/hw/virtio/vhost-user-i2c.c b/hw/virtio/vhost-user-i2c.c
index dc5c828ba6..60eaf0d95b 100644
--- a/hw/virtio/vhost-user-i2c.c
+++ b/hw/virtio/vhost-user-i2c.c
@@ -143,8 +143,6 @@ static void do_vhost_user_cleanup(VirtIODevice *vdev,
VHostUserI2C *i2c)
vhost_user_cleanup(&i2c->vhost_user);
virtio_delete_queue(i2c->vq);
virtio_cleanup(vdev);
- g_free(i2c->vhost_dev.vqs);
- i2c->vhost_dev.vqs = NULL;
}
static int vu_i2c_connect(DeviceState *dev)
@@ -228,6 +226,7 @@ static void vu_i2c_device_realize(DeviceState *dev, Error
**errp)
ret = vhost_dev_init(&i2c->vhost_dev, &i2c->vhost_user,
VHOST_BACKEND_TYPE_USER, 0, errp);
if (ret < 0) {
+ g_free(i2c->vhost_dev.vqs);
do_vhost_user_cleanup(vdev, i2c);
}
@@ -239,10 +238,12 @@ static void vu_i2c_device_unrealize(DeviceState *dev)
{
VirtIODevice *vdev = VIRTIO_DEVICE(dev);
VHostUserI2C *i2c = VHOST_USER_I2C(dev);
+ struct vhost_virtqueue *vhost_vqs = i2c->vhost_dev.vqs;
/* This will stop vhost backend if appropriate. */
vu_i2c_set_status(vdev, 0);
vhost_dev_cleanup(&i2c->vhost_dev);
+ g_free(vhost_vqs);
do_vhost_user_cleanup(vdev, i2c);
}
--
MST
- [PULL 04/53] Revert "x86: re-initialize RNG seed when selecting kernel", (continued)
- [PULL 04/53] Revert "x86: re-initialize RNG seed when selecting kernel", Michael S. Tsirkin, 2023/03/02
- [PULL 03/53] Revert "x86: do not re-randomize RNG seed on snapshot load", Michael S. Tsirkin, 2023/03/02
- [PULL 05/53] Revert "x86: reinitialize RNG seed on system reboot", Michael S. Tsirkin, 2023/03/02
- [PULL 09/53] virtio-net: clear guest_announce feature if no cvq backend, Michael S. Tsirkin, 2023/03/02
- [PULL 11/53] vhost-user-gpio: Configure vhost_dev when connecting, Michael S. Tsirkin, 2023/03/02
- [PULL 16/53] docs: vhost-user: replace _SLAVE_ with _BACKEND_, Michael S. Tsirkin, 2023/03/02
- [PULL 07/53] Revert "x86: return modified setup_data only if read as memory, not as file", Michael S. Tsirkin, 2023/03/02
- [PULL 13/53] vhost-user-rng: Back up vqs before cleaning up vhost_dev, Michael S. Tsirkin, 2023/03/02
- [PULL 17/53] libvhost-user: Adopt new backend naming, Michael S. Tsirkin, 2023/03/02
- [PULL 10/53] backends/vhost-user: remove the ioeventfd check, Michael S. Tsirkin, 2023/03/02
- [PULL 12/53] vhost-user-i2c: Back up vqs before cleaning up vhost_dev,
Michael S. Tsirkin <=
- [PULL 14/53] virtio-rng-pci: fix transitional migration compat for vectors, Michael S. Tsirkin, 2023/03/02
- [PULL 08/53] Revert "hw/i386: pass RNG seed via setup_data entry", Michael S. Tsirkin, 2023/03/02
- [PULL 15/53] hw/timer/hpet: Fix expiration time overflow, Michael S. Tsirkin, 2023/03/02
- [PULL 06/53] Revert "x86: use typedef for SetupData struct", Michael S. Tsirkin, 2023/03/02
- [PULL 18/53] vhost-user: Adopt new backend naming, Michael S. Tsirkin, 2023/03/02
- [PULL 19/53] vdpa: stop all svq on device deletion, Michael S. Tsirkin, 2023/03/02
- [PULL 20/53] pci/shpc: set attention led to OFF on reset, Michael S. Tsirkin, 2023/03/02