On Fri, 2006-10-27 at 11:02 -0700, Roland Dreier wrote: > > So the issue is my maps are getting setup with bounce bufs. This > > shouldn't be the case, I think, because my device supports 64b > > addressing. I'm diggin' into this. > > Yes, it's a little strange that you're still bouncing with the > pci_set_dma_mask(DMA_64BIT_MASK). But the bounce buffering should > work -- the fact that it doesn't means you have a bug in how you're > using dma_map_single(), because dma_unmap_single() will copy things > back from the bounce buffer. > > So you have two issues: > - why is the bounce buffering happening? > - what's wrong with your dma mapping calls? (Because there are other > situations with an IOMMU where you have to get things right) > > - R.
I must be misusing dma_map_single(). What I'm doing is allocating a verb message reply queue for the adapter to DMA verb replies into. It never gets unmapped. I kmalloc() it, then map it. I could use dma_alloc_coherent() or something, and maybe that's what I need to do? You're saying I must unmap it before the data is valid (cuz of the bounce buffering). If that's true, then how in sam hill does user mode RDMA work since the user's memory isn't unmapped before the user looks like memory that is the target of RDMA???? The uverbs code calls dma_map_sg() which is roughly the same as dma_map_single, eh? Slightly confused... Steve. _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
