Re: [PATCH v5 02/16] iov_iter: add iterator type for dmabuf maps
Anuj gupta <[email protected]> Mon, 3 Aug 2026 18:50:50 +0530
| Newsgroups | org.infradead.lists.linux-nvme,dev.linux.lists.dm-devel,dev.linux.lists.nvdimm,org.kernel.vger.ceph-devel,org.kernel.vger.io-uring,org.kernel.vger.linux-block,org.kernel.vger.linux-btrfs,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media |
|---|---|
| Message-ID | <CACzX3AvwBF32_ODomei3XHSZ=KtRaWLN-_Tfkwv7sV3Ssc3wmw@mail.gmail.com> |
On Sat, Aug 1, 2026 at 9:19=E2=80=AFPM Pavel Begunkov <[email protected]= om> wrote: > @@ -841,7 +857,7 @@ static unsigned long iov_iter_alignment_bvec(const st= ruct iov_iter *i) > > unsigned long iov_iter_alignment(const struct iov_iter *i) > { > - if (likely(iter_is_ubuf(i))) { > + if (likely(iter_is_ubuf(i)) || iov_iter_is_dmabuf_map(i)) { > size_t size =3D i->count; > if (size) > return ((unsigned long)i->ubuf + i->iov_offset) |= size; dmabuf_map shares the same union slot as ubuf, so this reads the map pointer as a user address. gap_alignment() below already returns 0 correctly for dmabuf - this should too. Checked the rest of this patch (advance/revert/restore) - none of them dereference the union pointer for dmabuf, so it's isolated to this one spot. Doesn't affect the current series, nothing reaches this with a dmabuf iter yet. > @@ -872,7 +888,7 @@ unsigned long iov_iter_gap_alignment(const struct iov= _iter *i) > size_t size =3D i->count; > unsigned k; > > - if (iter_is_ubuf(i)) > + if (iter_is_ubuf(i) || iov_iter_is_dmabuf_map(i)) > return 0;