[PATCH v3 0/3] vdpa: Check iova range on memory regions ops

Eugenio Pérez posted 3 patches 2 years, 6 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20211012140710.804529-1-eperezma@redhat.com
There is a newer version of this series
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(-)
[PATCH v3 0/3] vdpa: Check iova range on memory regions ops
Posted by Eugenio Pérez 2 years, 6 months ago
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 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