Re: [PATCH v2 1/1] vfio/type1: Respect IOMMU reserved regions in vfio_test_domain_fgsp()
From: Jason Gunthorpe
Date: Fri Jan 06 2023 - 13:03:56 EST
On Fri, Jan 06, 2023 at 10:24:50AM -0700, Alex Williamson wrote:
> > - ret = iommu_map(domain->domain, 0, page_to_phys(pages), PAGE_SIZE * 2,
> > - IOMMU_READ | IOMMU_WRITE | IOMMU_CACHE);
> > - if (!ret) {
> > - size_t unmapped = iommu_unmap(domain->domain, 0, PAGE_SIZE);
> > + list_for_each_entry(region, regions, list) {
> > + if (region->end - region->start < PAGE_SIZE * 2 ||
> > + region->start % (PAGE_SIZE*2))
>
> Maybe this falls into the noise, but we don't care if region->start is
> aligned to a double page, so long as we can map an aligned double page
> within the region. Maybe something like:
> dma_addr_t start = ALIGN(region->start, PAGE_SIZE * 2);
>
> if (start >= region->end || (region->end - start < PAGE_SIZE * 2))
> continue;
Yeah, that is more technically correct
Jason