mirror of https://github.com/xemu-project/xemu.git
vhost: fail device start if iotlb update fails
While starting a vhost device, updating iotlb entries via 'vhost_device_iotlb_miss' may return an error. qemu-kvm: vhost_device_iotlb_miss: 700871,700871: Fail to update device iotlb Fail device start when such an error occurs. Signed-off-by: Prasad Pandit <pjp@fedoraproject.org> Message-Id: <20241107113247.46532-1-ppandit@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
This commit is contained in:
parent
5d52529462
commit
571bdc97b8
|
@ -2095,11 +2095,22 @@ int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev, bool vrings)
|
|||
* vhost-kernel code requires for this.*/
|
||||
for (i = 0; i < hdev->nvqs; ++i) {
|
||||
struct vhost_virtqueue *vq = hdev->vqs + i;
|
||||
vhost_device_iotlb_miss(hdev, vq->used_phys, true);
|
||||
r = vhost_device_iotlb_miss(hdev, vq->used_phys, true);
|
||||
if (r) {
|
||||
goto fail_iotlb;
|
||||
}
|
||||
}
|
||||
}
|
||||
vhost_start_config_intr(hdev);
|
||||
return 0;
|
||||
fail_iotlb:
|
||||
if (vhost_dev_has_iommu(hdev) &&
|
||||
hdev->vhost_ops->vhost_set_iotlb_callback) {
|
||||
hdev->vhost_ops->vhost_set_iotlb_callback(hdev, false);
|
||||
}
|
||||
if (hdev->vhost_ops->vhost_dev_start) {
|
||||
hdev->vhost_ops->vhost_dev_start(hdev, false);
|
||||
}
|
||||
fail_start:
|
||||
if (vrings) {
|
||||
vhost_dev_set_vring_enable(hdev, false);
|
||||
|
|
Loading…
Reference in New Issue