On Thu, Feb 23, 2023 at 02:59:22PM +0800, Jason Wang wrote: > This patch introduces a new helper to unmap the range of a specific > IOMMU notifier. > > Signed-off-by: Jason Wang <jasow...@redhat.com> > --- > include/exec/memory.h | 10 ++++++++++ > softmmu/memory.c | 13 +++++++++++++ > 2 files changed, 23 insertions(+) > > diff --git a/include/exec/memory.h b/include/exec/memory.h > index 2e602a2fad..6fa0b071f0 100644 > --- a/include/exec/memory.h > +++ b/include/exec/memory.h > @@ -1731,6 +1731,16 @@ void memory_region_notify_iommu(IOMMUMemoryRegion > *iommu_mr, > void memory_region_notify_iommu_one(IOMMUNotifier *notifier, > IOMMUTLBEvent *event); > > +/** > + * memory_region_unmap_iommu_notifier_range: notify a unmap for an IOMMU > + * translation that covers the > + * range of a notifier > + * > + * @notifier: the notifier to be notified > + */ > +void memory_region_unmap_iommu_notifier_range(IOMMUNotifier *n); > + > + > /** > * memory_region_register_iommu_notifier: register a notifier for changes to > * IOMMU translation entries.
This causes doc warnings: /scm/qemu/docs/../include/exec/memory.h:1741: warning: Function parameter or member 'n' not described in 'memory_region_unmap_iommu_notifier_range' /scm/qemu/docs/../include/exec/memory.h:1741: warning: Excess function parameter 'notifier' description in 'memory_region_unmap_iommu_notifier_range' please fix. > diff --git a/softmmu/memory.c b/softmmu/memory.c > index 9d64efca26..ba43b4474e 100644 > --- a/softmmu/memory.c > +++ b/softmmu/memory.c > @@ -1996,6 +1996,19 @@ void memory_region_notify_iommu_one(IOMMUNotifier > *notifier, > } > } > > +void memory_region_unmap_iommu_notifier_range(IOMMUNotifier *n) > +{ > + IOMMUTLBEvent event; > + > + event.type = IOMMU_NOTIFIER_UNMAP; > + event.entry.target_as = &address_space_memory; > + event.entry.iova = n->start; > + event.entry.perm = IOMMU_NONE; > + event.entry.addr_mask = n->end - n->start; > + > + memory_region_notify_iommu_one(n, &event); > +} > + > void memory_region_notify_iommu(IOMMUMemoryRegion *iommu_mr, > int iommu_idx, > IOMMUTLBEvent event) > -- > 2.25.1