On Thu, 2019-02-07 at 22:26 +0000, Jason Gunthorpe 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@xxxxxx> (for scatterlist) > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxxxx> > For the vmwgfx part, Acked-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx> I'll take a deeper look to provide a vmwgfx fix as a follow up. Thanks, Thomas