On Tue, Oct 13, 2015 at 12:37 PM, David Woodhouse <[email protected]>
wrote:

> On Wed, 2015-06-10 at 09:41 -0700, Christian Zander wrote:
> > In preparation for the installation of a large page, any small page
> > tables that may still exist in the target IOV address range are
> > removed.  However, if a scatter/gather list entry is large enough to
> > fit more than one large page, the address space for those secondary
> > large pages is not cleared of conflicting small page tables.
> >
> > This can cause legitimate mapping requests to fail with errors of the
> > form below, potentially followed by a series of IOMMU faults:
> >
> > ERROR: DMA PTE for vPFN 0xfde00 already set (to 7f83a4003 not 7e9e00083)
> >
> > In this example, a 4MB scatter/gather list entry resulted in the
> > successful installation of a large page @ vPFN 0xfdc00, followed by
> > a failed attempt to install another large page @ vPFN 0xfde00, due to
> > the presence of a pointer to a small page table @ 0x7f83a4000.
> >
> > To address this problem, compute the number of large pages that fit
> > into a given scatter/gather list entry, and use it to derive the
> > last vPFN covered by the large page(s).
> >
> > Cc: [email protected]
> > Signed-off-by: Christian Zander <[email protected]>
>
> Thanks; the fix looks correct. I've pushed it with minor cosmetic fixes
> to my tree, and will send it on to Linus in a few days assuming nothing
> explodes (which of course it shouldn't).
>

Thanks David.


--
> David Woodhouse                            Open Source Technology Centre
> [email protected]                              Intel Corporation
>
>
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to