Hi Tina, On Fri, Jul 15, 2022 at 12:09:23AM +0000, Zhang, Tina wrote: > > +static void virtio_iommu_notify_map_unmap(IOMMUMemoryRegion *mr, > > + IOMMUTLBEvent *event, > > + hwaddr virt_start, hwaddr > > +virt_end) { > > + uint64_t delta = virt_end - virt_start; > > + > > + event->entry.iova = virt_start; > > + event->entry.addr_mask = delta; > > + > > + if (delta == UINT64_MAX) { > > + memory_region_notify_iommu(mr, 0, *event); > > + } > > + > > + while (virt_start != virt_end + 1) { > > + uint64_t mask = dma_aligned_pow2_mask(virt_start, virt_end, > > + 64); > > + > > + event->entry.addr_mask = mask; > > + event->entry.iova = virt_start; > > + memory_region_notify_iommu(mr, 0, *event); > > + virt_start += mask + 1; > > Hi Jean, > > We also need to increase the event->translated_addr for the map request here.
Ah right, I'll fix this Thanks, Jean