Joerg Roedel wrote: > On Thu, Jul 01, 2010 at 11:17:34PM -0700, Zach Pfeffer wrote: >> Andi Kleen wrote: > >>> Hmm? dma_map_* does not change any CPU mappings. It only sets up >>> DMA mapping(s). >> Sure, but I was saying that iommu_map() doesn't just set up the IOMMU >> mappings, its sets up both the iommu and kernel buffer mappings. > > What do you mean by kernel buffer mappings? In-kernel mappings whose addresses can be dereferenced. > > >>> That assumes that all the IOMMUs on the system support the same page table >>> format, right? >> Actually no. Since the VCMM abstracts a page-table as a Virtual >> Contiguous Region (VCM) a VCM can be associated with any device, >> regardless of their individual page table format. > > The IOMMU-API abstracts a page-table as a domain which can also be > associated with any device (behind an iommu). It does, but only by convention. The domain member is just a big catchall void *. It would be more useful to factor out a VCM abstraction, with associated ops. As it stands all IOMMU device driver writters have to re-invent IOMMU virtual address management. -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>