Jason Gunthorpe d901b2760d lib/scatterlist: Provide a DMA page iterator
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@lst.de> (for scatterlist)
Acked-by: Thomas Hellstrom <thellstrom@vmware.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> (ipu3-cio2)
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-02-11 15:02:33 -07:00
..
2019-01-06 16:33:10 -08:00
2018-07-10 15:00:52 -06:00
2018-08-22 10:52:48 -07:00
2017-12-01 13:09:40 -08:00
2017-12-01 13:09:40 -08:00
2018-10-12 09:17:46 +02:00
2018-08-16 12:14:42 -07:00
2017-12-01 13:09:40 -08:00
2018-08-22 10:52:48 -07:00
2018-07-23 15:22:39 +10:00
2018-02-06 18:32:44 -08:00
2019-01-05 13:54:53 -08:00
2017-02-24 17:46:57 -08:00
2018-12-29 13:03:29 -08:00
2018-06-12 16:19:22 -07:00
2018-12-06 13:57:03 +01:00
2018-04-12 09:41:19 -07:00
2018-06-12 16:19:22 -07:00
2017-12-01 13:09:40 -08:00
2018-10-16 13:45:44 +02:00
2017-12-01 13:09:40 -08:00
2018-07-17 09:27:43 +02:00
2018-10-16 13:45:44 +02:00
2018-06-27 18:58:49 +03:00
2018-11-16 19:25:29 -08:00
2018-10-15 16:31:29 -04:00
2018-11-15 14:57:09 -08:00
2018-04-23 16:39:35 +01:00
2017-08-15 09:02:07 -07:00