[openib-general] Suggestions for how to remove bus_to_virt()

Ralph Campbell ralphc at pathscale.com
Thu Jul 13 09:37:54 PDT 2006


Thanks to all for the pointers and suggestions.
It will probably take me a while to follow up on these
and make another proposal.

On Thu, 2006-07-13 at 09:02 -0700, Roland Dreier wrote:
>  > > A cleaner solution would be to make the dma_ API really use the device
>  > > it's passed anyway, and allow drivers to override the standard PCI
>  > > stuff nicely.  But that would be major surgery, I guess.
> 
>  > Clean but expensive, you should not force the rest of the kernel
>  > to eat the cost of something you want to do when it's totally
>  > unnecessary for most other users.
> 
> OK, fair enough.
> 
>  > For example, x86 never needs to do anything other than a direct
>  > virt_to_phys translation to produce a DMA address, no matter what
>  > bus the device is on.  It's a single simple integer adjustment
>  > that can be done inline in about 2 or 3 instructions at most.
> 
> <pedantic>Except x86 needs to handle systems with IOMMUs now...</pedantic>
> 
>  > If you need device level DMA mapping semantics, create them for your
>  > device type.  This is what USB does, btw.
> 
> Makes sense -- Ralph, I would suggest looking at USB as a model.
> 
>  - R.





More information about the general mailing list