Now that we use PCIIOMMUOps to convey information about usable IOVA
ranges we do not to implement the iommu_set_iova_ranges IOMMU MR
callback.
Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
hw/virtio/virtio-iommu.c | 67 ----------------------------------------
1 file changed, 67 deletions(-)
diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c
index 33e9682b83..643bbb060b 100644
--- a/hw/virtio/virtio-iommu.c
+++ b/hw/virtio/virtio-iommu.c
@@ -1360,72 +1360,6 @@ static int virtio_iommu_set_page_size_mask(IOMMUMemoryRegion *mr,
return 0;
}
-/**
- * virtio_iommu_set_iova_ranges: Conveys the usable IOVA ranges
- *
- * The function turns those into reserved ranges. Once some
- * reserved ranges have been set, new reserved regions cannot be
- * added outside of the original ones.
- *
- * @mr: IOMMU MR
- * @iova_ranges: list of usable IOVA ranges
- * @errp: error handle
- */
-static int virtio_iommu_set_iova_ranges(IOMMUMemoryRegion *mr,
- GList *iova_ranges,
- Error **errp)
-{
- IOMMUDevice *sdev = container_of(mr, IOMMUDevice, iommu_mr);
- GList *current_ranges = sdev->host_resv_ranges;
- GList *l, *tmp, *new_ranges = NULL;
- int ret = -EINVAL;
-
- /* check that each new resv region is included in an existing one */
- if (sdev->host_resv_ranges) {
- range_inverse_array(iova_ranges,
- &new_ranges,
- 0, UINT64_MAX);
-
- for (tmp = new_ranges; tmp; tmp = tmp->next) {
- Range *newr = (Range *)tmp->data;
- bool included = false;
-
- for (l = current_ranges; l; l = l->next) {
- Range * r = (Range *)l->data;
-
- if (range_contains_range(r, newr)) {
- included = true;
- break;
- }
- }
- if (!included) {
- goto error;
- }
- }
- /* all new reserved ranges are included in existing ones */
- ret = 0;
- goto out;
- }
-
- if (sdev->probe_done) {
- warn_report("%s: Notified about new host reserved regions after probe",
- mr->parent_obj.name);
- }
-
- range_inverse_array(iova_ranges,
- &sdev->host_resv_ranges,
- 0, UINT64_MAX);
- rebuild_resv_regions(sdev);
-
- return 0;
-error:
- error_setg(errp, "IOMMU mr=%s Conflicting host reserved ranges set!",
- mr->parent_obj.name);
-out:
- g_list_free_full(new_ranges, g_free);
- return ret;
-}
-
static void virtio_iommu_system_reset(void *opaque)
{
VirtIOIOMMU *s = opaque;
@@ -1751,7 +1685,6 @@ static void virtio_iommu_memory_region_class_init(ObjectClass *klass,
imrc->replay = virtio_iommu_replay;
imrc->notify_flag_changed = virtio_iommu_notify_flag_changed;
imrc->iommu_set_page_size_mask = virtio_iommu_set_page_size_mask;
- imrc->iommu_set_iova_ranges = virtio_iommu_set_iova_ranges;
}
static const TypeInfo virtio_iommu_info = {
--
2.41.0
>-----Original Message----- >From: Eric Auger <eric.auger@redhat.com> >Subject: [RFC v2 5/7] virtio-iommu: Remove the implementation of >iommu_set_iova_range > >Now that we use PCIIOMMUOps to convey information about usable IOVA >ranges we do not to implement the iommu_set_iova_ranges IOMMU MR >callback. > >Signed-off-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Thanks Zhenzhong >--- > hw/virtio/virtio-iommu.c | 67 ---------------------------------------- > 1 file changed, 67 deletions(-) > >diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c >index 33e9682b83..643bbb060b 100644 >--- a/hw/virtio/virtio-iommu.c >+++ b/hw/virtio/virtio-iommu.c >@@ -1360,72 +1360,6 @@ static int >virtio_iommu_set_page_size_mask(IOMMUMemoryRegion *mr, > return 0; > } > >-/** >- * virtio_iommu_set_iova_ranges: Conveys the usable IOVA ranges >- * >- * The function turns those into reserved ranges. Once some >- * reserved ranges have been set, new reserved regions cannot be >- * added outside of the original ones. >- * >- * @mr: IOMMU MR >- * @iova_ranges: list of usable IOVA ranges >- * @errp: error handle >- */ >-static int virtio_iommu_set_iova_ranges(IOMMUMemoryRegion *mr, >- GList *iova_ranges, >- Error **errp) >-{ >- IOMMUDevice *sdev = container_of(mr, IOMMUDevice, iommu_mr); >- GList *current_ranges = sdev->host_resv_ranges; >- GList *l, *tmp, *new_ranges = NULL; >- int ret = -EINVAL; >- >- /* check that each new resv region is included in an existing one */ >- if (sdev->host_resv_ranges) { >- range_inverse_array(iova_ranges, >- &new_ranges, >- 0, UINT64_MAX); >- >- for (tmp = new_ranges; tmp; tmp = tmp->next) { >- Range *newr = (Range *)tmp->data; >- bool included = false; >- >- for (l = current_ranges; l; l = l->next) { >- Range * r = (Range *)l->data; >- >- if (range_contains_range(r, newr)) { >- included = true; >- break; >- } >- } >- if (!included) { >- goto error; >- } >- } >- /* all new reserved ranges are included in existing ones */ >- ret = 0; >- goto out; >- } >- >- if (sdev->probe_done) { >- warn_report("%s: Notified about new host reserved regions after >probe", >- mr->parent_obj.name); >- } >- >- range_inverse_array(iova_ranges, >- &sdev->host_resv_ranges, >- 0, UINT64_MAX); >- rebuild_resv_regions(sdev); >- >- return 0; >-error: >- error_setg(errp, "IOMMU mr=%s Conflicting host reserved ranges set!", >- mr->parent_obj.name); >-out: >- g_list_free_full(new_ranges, g_free); >- return ret; >-} >- > static void virtio_iommu_system_reset(void *opaque) > { > VirtIOIOMMU *s = opaque; >@@ -1751,7 +1685,6 @@ static void >virtio_iommu_memory_region_class_init(ObjectClass *klass, > imrc->replay = virtio_iommu_replay; > imrc->notify_flag_changed = virtio_iommu_notify_flag_changed; > imrc->iommu_set_page_size_mask = virtio_iommu_set_page_size_mask; >- imrc->iommu_set_iova_ranges = virtio_iommu_set_iova_ranges; > } > > static const TypeInfo virtio_iommu_info = { >-- >2.41.0
© 2016 - 2024 Red Hat, Inc.