[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20190211222654.GA15746@ziepe.ca>
Date: Mon, 11 Feb 2019 15:26:54 -0700
From: Jason Gunthorpe <jgg@...pe.ca>
To: Daniel Stone <daniel@...ishbar.org>, "hch@....de" <hch@....de>,
"Koenig, Christian" <Christian.Koenig@....com>,
Thomas Hellstrom <thellstrom@...are.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"yong.zhi@...el.com" <yong.zhi@...el.com>,
"daniel.vetter@...ll.ch" <daniel.vetter@...ll.ch>,
"linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>,
"linux-media@...r.kernel.org" <linux-media@...r.kernel.org>,
"bingbu.cao@...el.com" <bingbu.cao@...el.com>,
"tian.shu.qiu@...el.com" <tian.shu.qiu@...el.com>,
"shiraz.saleem@...el.com" <shiraz.saleem@...el.com>,
"sakari.ailus@...ux.intel.com" <sakari.ailus@...ux.intel.com>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>
Subject: Re: [PATCH v2] lib/scatterlist: Provide a DMA page iterator
On Thu, Feb 07, 2019 at 10:26:52PM +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@....de> (for scatterlist)
> Signed-off-by: Jason Gunthorpe <jgg@...lanox.com>
> Acked-by: Thomas Hellstrom <thellstrom@...are.com>
> ---
> .clang-format | 1 +
> drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 8 +++-
> drivers/media/pci/intel/ipu3/ipu3-cio2.c | 4 +-
> include/linux/scatterlist.h | 49 ++++++++++++++++++----
> lib/scatterlist.c | 26 ++++++++++++
> 5 files changed, 76 insertions(+), 12 deletions(-)
Applied to rdma.git's for-next, thanks everyone.
Jason
Powered by blists - more mailing lists