Re: Suggestions for how to remove bus_to_virt()

From: Ralph Campbell
Date: Thu Jul 13 2006 - 12:36:07 EST


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.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/