Re: [PATCH 2.6.24-rc1] fix sg_phys to use dma_addr_t

From: Jens Axboe
Date: Thu Oct 25 2007 - 05:08:41 EST


On Thu, Oct 25 2007, Rolf Eike Beer wrote:
> Jens Axboe wrote:
> > On Thu, Oct 25 2007, Rolf Eike Beer wrote:
> > > Am Donnerstag, 25. Oktober 2007 schrieb Arjan van de Ven:
> > > > > Signed-off-by: Hugh Dickins <hugh@xxxxxxxxxxx>
> > > > > ---
> > > > > Whether this is a complete patch, suitable for all architectures,
> > > > > I'm not sure: it builds, boots and runs correctly on the x86_32 box
> > > > > in question, but you'll be a lot wiser than me about using dma_addr_t
> > > > > for everyone. (Seems a bit of a shame to include <asm/types.h> here,
> > > > > when I think all arches already get to include it one way or another,
> > > > > typically via asm/scatterlist.h; but I guess it's safest to repeat
> > > > > it.)
> > > >
> > > > there is a problem with this... sg_phys doesn't return an actual *dma*
> > > > address.... at least not an address you can give to the device.
> > > > Using dma_addr_t is thus a bit misleading.....
> > >
> > > Ok, then: how do I actually get such an address?
> >
> > You use the dma mapping api, Documentation/DMA-mapping.txt
>
> Which comes back always to the same point: if I get a buffer from
> userspace to use for DMA: what can I do then? I need to convert a
> given list of (physical, pinned) pages to DMA addresses.

get_user_pages() -> fill in sg table -> pci/dma_map_sg()

--
Jens Axboe

-
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/