On Wed, May 18, 2011 at 03:02:30PM +0200, Leon Woestenberg wrote: > Hello all, > > memory allocated with pci_alloc_consistent() returns the (kernel) > virtual address and the bus address (which may be different from the > physical memory address). > > What is the correct implementation of the driver mmap (file operation > method) for such memory? > > I assume remap_pfn_range() must be used, but how can I find out the > correct arguments, such as the physical address? You are going to use the physical address from the CPU side. So not the bus address. Instead use the virtual address and find the physical address from that. page_to_pfn() does a good job. Then you can call 'vm_insert_page(vma...)' Or 'vm_insert_mixed' > > Some plainly use the bus address as the physical address to > remap_pfn_range, but that seems plain wrong to be in general. Yeah, what code is doing that? It shouldn't be doing it. > > This questions seems a FAQ, but I found different (and > contradictionary) answers on Google. Use 'cscope' on the Linux kernel. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html