Linux> All programmers I am relatively new to linux kernel. Please
Linux> advise what is the safe way to get the original virtaul address
Linux> from dma address e.g.,
>> You have to store the address you pass to pci_map_single()
>> somewhere in your data structures together with the dma address.
James> Yes, but speaking as someone who had to use a large hammer to
James> convert his driver from bus_to_virt et al., it does seem rather
James> hard not to have the equivalent for the new pci_dma paradigm.
James> It does present an obstacle persuading people to convert
James> drivers, particularly if the hardware is going to present a
James> linked list of addresses (as SCSI hardware often does).
Because as DaveM pointed out, some hardware can't do it, and as I said
earlier, it's a lot cheaper and easier for driver writers to just
store the extra pointer in their data structures than it is to
implement a database to maintain it.
Remember you often need this address in the hot path (say TX interrupt
handler) so you don't want to introduce any unnecessary function calls.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to firstname.lastname@example.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/