This simplifies further refactoring and final introduction of vhost backend live migration.
Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]> Reviewed-by: Raphael Norwitz <[email protected]> Reviewed-by: Daniil Tatianin <[email protected]> --- hw/virtio/vhost.c | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index 84937c8a67..06b0b34cd3 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -1303,29 +1303,6 @@ int vhost_virtqueue_start(struct vhost_dev *dev, return 0; } - vq->num = state.num = virtio_queue_get_num(vdev, idx); - r = dev->vhost_ops->vhost_set_vring_num(dev, &state); - if (r) { - VHOST_OPS_DEBUG(r, "vhost_set_vring_num failed"); - return r; - } - - state.num = virtio_queue_get_last_avail_idx(vdev, idx); - r = dev->vhost_ops->vhost_set_vring_base(dev, &state); - if (r) { - VHOST_OPS_DEBUG(r, "vhost_set_vring_base failed"); - return r; - } - - if (vhost_needs_vring_endian(vdev)) { - r = vhost_virtqueue_set_vring_endian_legacy(dev, - virtio_is_big_endian(vdev), - vhost_vq_index); - if (r) { - return r; - } - } - l = vq->desc_size; vq->desc = vhost_memory_map(dev, vq->desc_phys, l, false); if (!vq->desc) { @@ -1347,6 +1324,29 @@ int vhost_virtqueue_start(struct vhost_dev *dev, goto fail; } + vq->num = state.num = virtio_queue_get_num(vdev, idx); + r = dev->vhost_ops->vhost_set_vring_num(dev, &state); + if (r) { + VHOST_OPS_DEBUG(r, "vhost_set_vring_num failed"); + goto fail; + } + + state.num = virtio_queue_get_last_avail_idx(vdev, idx); + r = dev->vhost_ops->vhost_set_vring_base(dev, &state); + if (r) { + VHOST_OPS_DEBUG(r, "vhost_set_vring_base failed"); + goto fail; + } + + if (vhost_needs_vring_endian(vdev)) { + r = vhost_virtqueue_set_vring_endian_legacy(dev, + virtio_is_big_endian(vdev), + vhost_vq_index); + if (r) { + goto fail; + } + } + r = vhost_virtqueue_set_addr(dev, vq, vhost_vq_index, dev->log_enabled); if (r < 0) { goto fail; -- 2.52.0
