Split vhost_user_blk_sync_config() out from
vhost_user_blk_handle_config_change(), to be reused in the following
commit.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Acked-by: Raphael Norwitz <raphael@enfabrica.net>
---
hw/block/vhost-user-blk.c | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
index 5b7f46bbb0..48b3dabb8d 100644
--- a/hw/block/vhost-user-blk.c
+++ b/hw/block/vhost-user-blk.c
@@ -90,27 +90,39 @@ static void vhost_user_blk_set_config(VirtIODevice *vdev, const uint8_t *config)
s->blkcfg.wce = blkcfg->wce;
}
+static int vhost_user_blk_sync_config(DeviceState *dev, Error **errp)
+{
+ int ret;
+ VirtIODevice *vdev = VIRTIO_DEVICE(dev);
+ VHostUserBlk *s = VHOST_USER_BLK(vdev);
+
+ ret = vhost_dev_get_config(&s->dev, (uint8_t *)&s->blkcfg,
+ vdev->config_len, errp);
+ if (ret < 0) {
+ return ret;
+ }
+
+ memcpy(vdev->config, &s->blkcfg, vdev->config_len);
+ virtio_notify_config(vdev);
+
+ return 0;
+}
+
static int vhost_user_blk_handle_config_change(struct vhost_dev *dev)
{
int ret;
- VirtIODevice *vdev = dev->vdev;
- VHostUserBlk *s = VHOST_USER_BLK(dev->vdev);
Error *local_err = NULL;
if (!dev->started) {
return 0;
}
- ret = vhost_dev_get_config(dev, (uint8_t *)&s->blkcfg,
- vdev->config_len, &local_err);
+ ret = vhost_user_blk_sync_config(DEVICE(dev->vdev), &local_err);
if (ret < 0) {
error_report_err(local_err);
return ret;
}
- memcpy(dev->vdev->config, &s->blkcfg, vdev->config_len);
- virtio_notify_config(dev->vdev);
-
return 0;
}
--
2.34.1
On Fri, Sep 20, 2024 at 12:49:35PM GMT, Vladimir Sementsov-Ogievskiy wrote: >Split vhost_user_blk_sync_config() out from >vhost_user_blk_handle_config_change(), to be reused in the following >commit. > >Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> >Acked-by: Raphael Norwitz <raphael@enfabrica.net> >--- > hw/block/vhost-user-blk.c | 26 +++++++++++++++++++------- > 1 file changed, 19 insertions(+), 7 deletions(-) > >diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c >index 5b7f46bbb0..48b3dabb8d 100644 >--- a/hw/block/vhost-user-blk.c >+++ b/hw/block/vhost-user-blk.c >@@ -90,27 +90,39 @@ static void vhost_user_blk_set_config(VirtIODevice *vdev, const uint8_t *config) > s->blkcfg.wce = blkcfg->wce; > } > >+static int vhost_user_blk_sync_config(DeviceState *dev, Error **errp) I was going to ask why use `DeviceState *`, but then I saw the next commit where it's needed by `dc->sync_config` callback. LGTM! Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> >+{ >+ int ret; >+ VirtIODevice *vdev = VIRTIO_DEVICE(dev); >+ VHostUserBlk *s = VHOST_USER_BLK(vdev); >+ >+ ret = vhost_dev_get_config(&s->dev, (uint8_t *)&s->blkcfg, >+ vdev->config_len, errp); >+ if (ret < 0) { >+ return ret; >+ } >+ >+ memcpy(vdev->config, &s->blkcfg, vdev->config_len); >+ virtio_notify_config(vdev); >+ >+ return 0; >+} >+ > static int vhost_user_blk_handle_config_change(struct vhost_dev *dev) > { > int ret; >- VirtIODevice *vdev = dev->vdev; >- VHostUserBlk *s = VHOST_USER_BLK(dev->vdev); > Error *local_err = NULL; > > if (!dev->started) { > return 0; > } > >- ret = vhost_dev_get_config(dev, (uint8_t *)&s->blkcfg, >- vdev->config_len, &local_err); >+ ret = vhost_user_blk_sync_config(DEVICE(dev->vdev), &local_err); > if (ret < 0) { > error_report_err(local_err); > return ret; > } > >- memcpy(dev->vdev->config, &s->blkcfg, vdev->config_len); >- virtio_notify_config(dev->vdev); >- > return 0; > } > >-- >2.34.1 >
© 2016 - 2024 Red Hat, Inc.