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
