On Wed, 2007-05-02 at 14:45 -0700, David Miller wrote: > From: "Michael Chan" <[EMAIL PROTECTED]> > Date: Wed, 02 May 2007 14:27:49 -0700 > > > I see. So IA64 always uses the SWIOTLB when it doesn't have IOMMU then? > > > > I'm a bit confused. Is it enough to just set the DMA mask to 40-bit and > > forget about all this checking? I thought that wasn't enough. A tx > > packet can be anywhere in 64-bit memory. When it gets to the driver, > > pci_map will not do any translation even if DMA mask is set to 40-bit if > > it doesn't have IOMMU. Is that right? > > If the buffer doesn't meet the DMA mask specification, it should do > bounce buffering. > > Have a look at lib/swiotlb.c, that is exactly what it appears to > be doing. >
OK. Is it correct to assume that all 64-bit systems using 64-bit dma_addr_t will either have real IOMMUs or will use SWIOTLB? If this is true, we can just set the DMA mask to what is supported by the hardware and let pci_map_xxx() handle all necessary translations or bounce buffering. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html