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). -- David Woodhouse Open Source Technology Centre [email protected] Intel Corporation
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
