[PATCH v2] lib/scatterlist: Provide a DMA page iterator

Miguel Ojeda miguel.ojeda.sandonis at gmail.com
Fri Feb 8 04:31:55 UTC 2019


On Thu, Feb 7, 2019 at 11:28 PM Jason Gunthorpe <jgg at mellanox.com> wrote:
>
> Commit 2db76d7c3c6d ("lib/scatterlist: sg_page_iter: support sg lists w/o
> backing pages") introduced the sg_page_iter_dma_address() function without
> providing a way to use it in the general case. If the sg_dma_len() is not
> equal to the sg length callers cannot safely use the
> for_each_sg_page/sg_page_iter_dma_address combination.
>
> Resolve this API mistake by providing a DMA specific iterator,
> for_each_sg_dma_page(), that uses the right length so
> sg_page_iter_dma_address() works as expected with all sglists.
>
> A new iterator type is introduced to provide compile-time safety against
> wrongly mixing accessors and iterators.
>
> Acked-by: Christoph Hellwig <hch at lst.de> (for scatterlist)
> Signed-off-by: Jason Gunthorpe <jgg at mellanox.com>
> ---
>  .clang-format                              |  1 +

Thanks for updating the .clang-format, Jason! :-)

Cheers,
Miguel


More information about the dri-devel mailing list