mirror of https://gitee.com/openkylin/qemu.git
vhost: do not verify ring mappings when IOMMU is enabled
When IOMMU is enabled, we store virtqueue metadata as iova (though it may has _phys suffix) and access them through dma helpers. Any translation failures could be reported by IOMMU. In this case, trying to validate iova against gpa won't work and will cause a false error reporting. So this patch bypasses the ring verification if IOMMU is enabled which is similar to the behavior before0ca1fd2d68
that calls vhost_memory_map() which is a nop when IOMMU is enabled. Fixes:0ca1fd2d68
("vhost: Simplify ring verification checks") Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Cc: Igor Mammedov <imammedo@redhat.com> Cc: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
38e83a71d0
commit
aebbdbee55
|
@ -342,6 +342,10 @@ static int vhost_verify_ring_mappings(struct vhost_dev *dev,
|
|||
"used ring"
|
||||
};
|
||||
|
||||
if (vhost_dev_has_iommu(dev)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < dev->nvqs; ++i) {
|
||||
struct vhost_virtqueue *vq = dev->vqs + i;
|
||||
|
||||
|
|
Loading…
Reference in New Issue