At this moment vdpa will not send memory regions bigger than 1<<63.
However, actual iova range could be way more restrictive than that.
Since we can obtain the range through vdpa ioctl call, just save it
from the beginning of the operation and check against it.
Changes from v3:
* Change default value from UINT64_MAX >> 1 to UINT64_MAX, making it
aligned with the kernel.
Changes from v2:
* Fallback to a default value in case kernel does not support
VHOST_VDPA_GET_IOVA_RANGE syscall.
Changes from v1:
* Use of int128_gt instead of plain uint64_t < comparison on memory
range end.
* Document vhost_vdpa_section_end's return value so it's clear that
it returns "one past end".
Eugenio Pérez (3):
vdpa: Skip protected ram IOMMU mappings
vdpa: Add vhost_vdpa_section_end
vdpa: Check for iova range at mappings changes
include/hw/virtio/vhost-vdpa.h | 2 +
hw/virtio/vhost-vdpa.c | 81 +++++++++++++++++++++++++---------
hw/virtio/trace-events | 1 +
3 files changed, 63 insertions(+), 21 deletions(-)
--
2.27.0