[ofa-general] Re: mthca use of dma_sync_single is bogus

Michael S. Tsirkin mst at dev.mellanox.co.il
Tue Jul 10 11:30:06 PDT 2007


> Quoting Roland Dreier <rdreier at cisco.com>:
> Subject: Re: [ofa-general] Re: mthca use of dma_sync_single is bogus
> 
>  > Aha. I looked at the code a bit.
>  > Basically is seems that some architectures use the dma handle
>  > and some the virtual address to flush the cache, that's
>  > where the requirement that same parameters are used for
>  > sync single as for map single comes from.
>  > 
>  > So it seems that this requirement does not apply to s/g, and that we can just
>  > build a scatterlist structure and do dma_sync_sg?
> 
> The statement
> 
>     synchronise a single contiguous or scatter/gather mapping.  All the
>     parameters must be the same as those passed into the single mapping
>     API.
> 
> in DMA-API.txt also is clearly attached to dma_sync_sg().  So I don't
> think it's a good idea to rely on being able to sync a different
> scatterlist than the one that was originally mapped.

Hmm. This means there's no way to sync a range within
mapping created with map_sg?

> It actually doesn't look too bad to replace our use of pci_map_sg()
> with dma_map_single(), at least at first glance.  I'll try to write a
> patch later.

Well, the reason map_sg is there is presumably because on some
architectures it's worth it to try and make the region contigious in DMA space.
But I agree this seems the lesser evil at this point ...

-- 
MST



More information about the general mailing list