[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] hw/virtio/virtio-iommu: Enforce power-of-two notify for both
From: |
Jean-Philippe Brucker |
Subject: |
Re: [PATCH] hw/virtio/virtio-iommu: Enforce power-of-two notify for both MAP and UNMAP |
Date: |
Mon, 18 Jul 2022 14:45:44 +0100 |
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