[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 15/15] vhost-user-scsi: free the inflight area when reset
From: |
Michael S. Tsirkin |
Subject: |
[PULL 15/15] vhost-user-scsi: free the inflight area when reset |
Date: |
Fri, 1 Dec 2023 12:15:45 -0500 |
From: Li Feng <fengli@smartx.com>
Keep it the same to vhost-user-blk.
At the same time, fix the vhost_reset_device.
Signed-off-by: Li Feng <fengli@smartx.com>
Message-Id: <20231123055431.217792-3-fengli@smartx.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/scsi/vhost-user-scsi.c | 16 ++++++++++++++++
hw/virtio/virtio.c | 2 +-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/hw/scsi/vhost-user-scsi.c b/hw/scsi/vhost-user-scsi.c
index 2060f9f94b..780f10559d 100644
--- a/hw/scsi/vhost-user-scsi.c
+++ b/hw/scsi/vhost-user-scsi.c
@@ -360,6 +360,20 @@ static Property vhost_user_scsi_properties[] = {
DEFINE_PROP_END_OF_LIST(),
};
+static void vhost_user_scsi_reset(VirtIODevice *vdev)
+{
+ VHostUserSCSI *s = VHOST_USER_SCSI(vdev);
+ VHostSCSICommon *vsc = VHOST_SCSI_COMMON(s);
+
+ vhost_dev_free_inflight(vsc->inflight);
+}
+
+static struct vhost_dev *vhost_user_scsi_get_vhost(VirtIODevice *vdev)
+{
+ VHostSCSICommon *vsc = VHOST_SCSI_COMMON(vdev);
+ return &vsc->dev;
+}
+
static const VMStateDescription vmstate_vhost_scsi = {
.name = "virtio-scsi",
.minimum_version_id = 1,
@@ -385,6 +399,8 @@ static void vhost_user_scsi_class_init(ObjectClass *klass,
void *data)
vdc->set_config = vhost_scsi_common_set_config;
vdc->set_status = vhost_user_scsi_set_status;
fwc->get_dev_path = vhost_scsi_common_get_fw_dev_path;
+ vdc->reset = vhost_user_scsi_reset;
+ vdc->get_vhost = vhost_user_scsi_get_vhost;
}
static void vhost_user_scsi_instance_init(Object *obj)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index e5105571cf..3a160f86ed 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -2137,7 +2137,7 @@ void virtio_reset(void *opaque)
vdev->device_endian = virtio_default_endian();
}
- if (vdev->vhost_started) {
+ if (vdev->vhost_started && k->get_vhost) {
vhost_reset_device(k->get_vhost(vdev));
}
--
MST
- [PULL 00/15] virtio,pc,pci: fixes, Michael S. Tsirkin, 2023/12/01
- [PULL 04/15] hw/audio/virtio-snd-pci: fix the PCI class code, Michael S. Tsirkin, 2023/12/01
- [PULL 05/15] hw/audio/hda-codec: fix multiplication overflow, Michael S. Tsirkin, 2023/12/01
- [PULL 01/15] osdep: add getloadavg, Michael S. Tsirkin, 2023/12/01
- [PULL 07/15] virtio-snd: check AUD_register_card return value, Michael S. Tsirkin, 2023/12/01
- [PULL 15/15] vhost-user-scsi: free the inflight area when reset,
Michael S. Tsirkin <=
- [PULL 02/15] netdev: set timeout depending on loadavg, Michael S. Tsirkin, 2023/12/01
- [PULL 03/15] tests/acpi/bios-tables-test: do not write new blobs unless there are changes, Michael S. Tsirkin, 2023/12/01
- [PULL 09/15] pcie_sriov: Remove g_new assertion, Michael S. Tsirkin, 2023/12/01
- [PULL 10/15] hw/acpi/erst: Do not ignore Error* in realize handler, Michael S. Tsirkin, 2023/12/01
- [PULL 12/15] virtio-iommu: Remove useless !sdev check in virtio_iommu_probe(), Michael S. Tsirkin, 2023/12/01
- [PULL 08/15] virtio-sound: add realize() error cleanup path, Michael S. Tsirkin, 2023/12/01
- [PULL 14/15] vhost-user: fix the reconnect error, Michael S. Tsirkin, 2023/12/01
- [PULL 13/15] msix: unset PCIDevice::msix_vector_poll_notifier in rollback, Michael S. Tsirkin, 2023/12/01