infiniband: Use user_backed_iter() to see if iterator is UBUF/IOVEC
authorDavid Howells <dhowells@redhat.com>
Mon, 25 Sep 2023 12:03:01 +0000 (13:03 +0100)
committerChristian Brauner <brauner@kernel.org>
Mon, 25 Sep 2023 12:30:28 +0000 (14:30 +0200)
Use user_backed_iter() to see if iterator is UBUF/IOVEC rather than poking
inside the iterator.

Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://lore.kernel.org/r/20230925120309.1731676-5-dhowells@redhat.com
cc: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
cc: Jason Gunthorpe <jgg@ziepe.ca>
cc: Leon Romanovsky <leon@kernel.org>
cc: linux-rdma@vger.kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
drivers/infiniband/hw/hfi1/file_ops.c
drivers/infiniband/hw/qib/qib_file_ops.c

index a5ab22cedd41a69307a2dfe3d80e8f0d506516b3..788fc249234f1ee925daf790a6952e2995692496 100644 (file)
@@ -267,7 +267,7 @@ static ssize_t hfi1_write_iter(struct kiocb *kiocb, struct iov_iter *from)
 
        if (!HFI1_CAP_IS_KSET(SDMA))
                return -EINVAL;
-       if (!from->user_backed)
+       if (!user_backed_iter(from))
                return -EINVAL;
        idx = srcu_read_lock(&fd->pq_srcu);
        pq = srcu_dereference(fd->pq, &fd->pq_srcu);
index 152952127f131366cad368ef37d51c8ed9d0eee1..29e4c59aa23be46e39d097ca453c7d41142f0521 100644 (file)
@@ -2244,7 +2244,7 @@ static ssize_t qib_write_iter(struct kiocb *iocb, struct iov_iter *from)
        struct qib_ctxtdata *rcd = ctxt_fp(iocb->ki_filp);
        struct qib_user_sdma_queue *pq = fp->pq;
 
-       if (!from->user_backed || !from->nr_segs || !pq)
+       if (!user_backed_iter(from) || !from->nr_segs || !pq)
                return -EINVAL;
 
        return qib_user_sdma_writev(rcd, pq, iter_iov(from), from->nr_segs);