aboutsummaryrefslogtreecommitdiff
path: root/hw/virtio
diff options
context:
space:
mode:
authorYuanhan Liu <yuanhan.liu@linux.intel.com>2015-11-11 21:24:41 +0800
committerMichael S. Tsirkin <mst@redhat.com>2015-11-12 15:49:33 +0200
commit3a12f32229a046f4d4ab0a3a52fb01d2d5a1ab76 (patch)
treecd57a81d24fafd2e3dfd6068759fa1068db9152a /hw/virtio
parent60915dc4691768c4dc62458bb3e16c843fab091d (diff)
vhost: send SET_VRING_ENABLE at start/stop
Send SET_VRING_ENABLE at start/stop, to give the backend an explicit sign of our state. Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/virtio')
-rw-r--r--hw/virtio/vhost.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index de29968a79..1794f0d211 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -1226,6 +1226,11 @@ int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev)
}
}
+ if (hdev->vhost_ops->vhost_set_vring_enable) {
+ /* only enable first vq pair by default */
+ hdev->vhost_ops->vhost_set_vring_enable(hdev, hdev->vq_index == 0);
+ }
+
return 0;
fail_log:
vhost_log_put(hdev, false);
@@ -1256,6 +1261,10 @@ void vhost_dev_stop(struct vhost_dev *hdev, VirtIODevice *vdev)
hdev->vq_index + i);
}
+ if (hdev->vhost_ops->vhost_set_vring_enable) {
+ hdev->vhost_ops->vhost_set_vring_enable(hdev, 0);
+ }
+
vhost_log_put(hdev, true);
hdev->started = false;
hdev->log = NULL;