Message ID | 20231123055431.217792-3-fengli@smartx.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fix some vhost-user issues | expand |
> On Nov 23, 2023, at 12:54 AM, Li Feng <fengli@smartx.com> wrote: > > 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> Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.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 4259fefeb6..d0a640af63 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)); > } > > -- > 2.42.0 >
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 4259fefeb6..d0a640af63 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)); }
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> --- hw/scsi/vhost-user-scsi.c | 16 ++++++++++++++++ hw/virtio/virtio.c | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-)