aboutsummaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
authorEric Auger <eric.auger@redhat.com>2023-10-19 15:45:08 +0200
committerCédric Le Goater <clg@redhat.com>2023-11-03 09:20:31 +0100
commit51478a8ef5694cbd92b9a3436ec4489464210a8e (patch)
treecdc14fcd69a6520fc02d8795b9f6a6c0b3074308 /system
parente8f433f80e831ecd81989ae0246f3f1e2d3ac480 (diff)
memory: Introduce memory_region_iommu_set_iova_ranges
This helper will allow to convey information about valid IOVA ranges to virtual IOMMUS. Signed-off-by: Eric Auger <eric.auger@redhat.com> Acked-by: Peter Xu <peterx@redhat.com> Reviewed-by: "Michael S. Tsirkin" <mst@redhat.com> [ clg: fixes in memory_region_iommu_set_iova_ranges() and iommu_set_iova_ranges() documentation ] Signed-off-by: Cédric Le Goater <clg@redhat.com>
Diffstat (limited to 'system')
-rw-r--r--system/memory.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/system/memory.c b/system/memory.c
index 4928f2525d..304fa843ea 100644
--- a/system/memory.c
+++ b/system/memory.c
@@ -1921,6 +1921,19 @@ int memory_region_iommu_set_page_size_mask(IOMMUMemoryRegion *iommu_mr,
return ret;
}
+int memory_region_iommu_set_iova_ranges(IOMMUMemoryRegion *iommu_mr,
+ GList *iova_ranges,
+ Error **errp)
+{
+ IOMMUMemoryRegionClass *imrc = IOMMU_MEMORY_REGION_GET_CLASS(iommu_mr);
+ int ret = 0;
+
+ if (imrc->iommu_set_iova_ranges) {
+ ret = imrc->iommu_set_iova_ranges(iommu_mr, iova_ranges, errp);
+ }
+ return ret;
+}
+
int memory_region_register_iommu_notifier(MemoryRegion *mr,
IOMMUNotifier *n, Error **errp)
{