mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-02-05 15:50:42 -07:00
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
1 changed files with 12 additions and 1 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue