From: Shiraz Saleem <shiraz.saleem@intel.com> To: Jason Gunthorpe <jgg@mellanox.com> Cc: Thomas Hellstrom <thellstrom@vmware.com>, Sinclair Yeh <syeh@vmware.com>, "linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>, Daniel Vetter <daniel.vetter@ffwll.ch>, Jian Xu Zheng <jian.xu.zheng@intel.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>, Sakari Ailus <sakari.ailus@linux.intel.com>, Bingbu Cao <bingbu.cao@intel.com>, Yong Zhi <yong.zhi@intel.com>, Christoph Hellwig <hch@lst.de>, Tian Shu Qiu <tian.shu.qiu@intel.com>, "linux-media@vger.kernel.org" <linux-media@vger.kernel.org> Subject: Re: [PATCH] lib/scatterlist: Provide a DMA page iterator Date: Sat, 12 Jan 2019 12:27:05 -0600 [thread overview] Message-ID: <20190112182704.GA15320@ssaleem-MOBL4.amr.corp.intel.com> (raw) In-Reply-To: <20190104223531.GA1705@ziepe.ca> On Fri, Jan 04, 2019 at 10:35:43PM +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 dma_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. [..] > > +/* > + * sg page iterator for DMA addresses > + * > + * This is the same as sg_page_iter however you can call > + * sg_page_iter_dma_address(@dma_iter) to get the page's DMA > + * address. sg_page_iter_page() cannot be called on this iterator. > + */ Does it make sense to have a variant of sg_page_iter_page() to get the page descriptor with this dma_iter? This can be used when walking DMA-mapped SG lists with for_each_sg_dma_page. > +struct sg_dma_page_iter { > + struct sg_page_iter base; > +}; > + > _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: Shiraz Saleem <shiraz.saleem@intel.com> To: Jason Gunthorpe <jgg@mellanox.com> Cc: "linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Christoph Hellwig <hch@lst.de>, Imre Deak <imre.deak@intel.com>, Daniel Vetter <daniel.vetter@ffwll.ch>, "linux-media@vger.kernel.org" <linux-media@vger.kernel.org>, Yong Zhi <yong.zhi@intel.com>, Sakari Ailus <sakari.ailus@linux.intel.com>, Bingbu Cao <bingbu.cao@intel.com>, Tian Shu Qiu <tian.shu.qiu@intel.com>, Jian Xu Zheng <jian.xu.zheng@intel.com>, Sinclair Yeh <syeh@vmware.com>, Thomas Hellstrom <thellstrom@vmware.com>, "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org> Subject: Re: [PATCH] lib/scatterlist: Provide a DMA page iterator Date: Sat, 12 Jan 2019 12:27:05 -0600 [thread overview] Message-ID: <20190112182704.GA15320@ssaleem-MOBL4.amr.corp.intel.com> (raw) In-Reply-To: <20190104223531.GA1705@ziepe.ca> On Fri, Jan 04, 2019 at 10:35:43PM +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 dma_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. [..] > > +/* > + * sg page iterator for DMA addresses > + * > + * This is the same as sg_page_iter however you can call > + * sg_page_iter_dma_address(@dma_iter) to get the page's DMA > + * address. sg_page_iter_page() cannot be called on this iterator. > + */ Does it make sense to have a variant of sg_page_iter_page() to get the page descriptor with this dma_iter? This can be used when walking DMA-mapped SG lists with for_each_sg_dma_page. > +struct sg_dma_page_iter { > + struct sg_page_iter base; > +}; > + >
next prev parent reply other threads:[~2019-01-12 18:27 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-01-04 22:35 [PATCH] lib/scatterlist: Provide a DMA page iterator Jason Gunthorpe 2019-01-05 2:37 ` kbuild test robot 2019-01-05 2:37 ` kbuild test robot 2019-01-05 3:21 ` Jason Gunthorpe 2019-01-10 23:42 ` Jason Gunthorpe 2019-01-14 9:48 ` Christoph Hellwig 2019-01-14 9:48 ` Christoph Hellwig 2019-01-15 14:17 ` Thomas Hellstrom 2019-01-15 14:17 ` Thomas Hellstrom 2019-01-15 14:24 ` Christian König 2019-01-15 14:24 ` Christian König 2019-01-15 15:20 ` hch 2019-01-15 18:03 ` Thomas Hellstrom 2019-01-15 18:03 ` Thomas Hellstrom 2019-01-15 18:31 ` hch 2019-01-15 18:31 ` hch 2019-01-15 19:13 ` Koenig, Christian 2019-01-15 19:13 ` Koenig, Christian 2019-01-15 20:58 ` hch 2019-01-16 7:09 ` Thomas Hellstrom 2019-01-16 7:09 ` Thomas Hellstrom 2019-01-16 7:28 ` Koenig, Christian 2019-01-16 7:28 ` Koenig, Christian 2019-01-16 10:14 ` Daniel Vetter 2019-01-16 10:14 ` Daniel Vetter 2019-01-16 16:06 ` hch 2019-01-16 16:36 ` Daniel Stone 2019-01-16 16:36 ` Daniel Stone 2019-01-15 21:25 ` Jason Gunthorpe 2019-01-16 10:40 ` Christian König 2019-01-16 10:40 ` Christian König 2019-01-16 16:11 ` hch 2019-01-16 16:11 ` hch 2019-01-16 17:24 ` Jason Gunthorpe 2019-01-17 9:30 ` hch 2019-01-17 10:47 ` Thomas Hellstrom 2019-01-17 10:47 ` Thomas Hellstrom 2019-01-17 15:54 ` Jason Gunthorpe 2019-01-12 18:27 ` Shiraz Saleem [this message] 2019-01-12 18:27 ` Shiraz Saleem 2019-01-12 18:37 ` Jason Gunthorpe 2019-01-12 19:03 ` Shiraz Saleem 2019-01-12 19:03 ` Shiraz Saleem 2019-01-14 9:46 ` Christoph Hellwig 2019-01-14 22:16 ` Jason Gunthorpe 2019-01-16 17:32 ` Shiraz Saleem 2019-02-07 23:23 ` Sakari Ailus 2019-02-07 23:23 ` Sakari Ailus
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190112182704.GA15320@ssaleem-MOBL4.amr.corp.intel.com \ --to=shiraz.saleem@intel.com \ --cc=bingbu.cao@intel.com \ --cc=daniel.vetter@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=hch@lst.de \ --cc=jgg@mellanox.com \ --cc=jian.xu.zheng@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-rdma@vger.kernel.org \ --cc=sakari.ailus@linux.intel.com \ --cc=syeh@vmware.com \ --cc=thellstrom@vmware.com \ --cc=tian.shu.qiu@intel.com \ --cc=yong.zhi@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.