diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2023-10-30 09:24:21 -1000 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2023-10-30 09:24:21 -1000 | 
| commit | df9c65b5fc7ef1caabdb7a01a2415cbb8a00908d (patch) | |
| tree | 42560cc7aca2e177332f46c50dfa6824aa10752d /drivers/infiniband/hw/qib/qib_file_ops.c | |
| parent | 3b3f874cc1d074bdcffc224d683925fd11808fe7 (diff) | |
| parent | b5f0e20f444cd150121e0ce912ebd3f2dabd12bc (diff) | |
Merge tag 'vfs-6.7.iov_iter' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs
Pull iov_iter updates from Christian Brauner:
 "This contain's David's iov_iter cleanup work to convert the iov_iter
  iteration macros to inline functions:
   - Remove last_offset from iov_iter as it was only used by ITER_PIPE
   - Add a __user tag on copy_mc_to_user()'s dst argument on x86 to
     match that on powerpc and get rid of a sparse warning
   - Convert iter->user_backed to user_backed_iter() in the sound PCM
     driver
   - Convert iter->user_backed to user_backed_iter() in a couple of
     infiniband drivers
   - Renumber the type enum so that the ITER_* constants match the order
     in iterate_and_advance*()
   - Since the preceding patch puts UBUF and IOVEC at 0 and 1, change
     user_backed_iter() to just use the type value and get rid of the
     extra flag
   - Convert the iov_iter iteration macros to always-inline functions to
     make the code easier to follow. It uses function pointers, but they
     get optimised away
   - Move the check for ->copy_mc to _copy_from_iter() and
     copy_page_from_iter_atomic() rather than in memcpy_from_iter_mc()
     where it gets repeated for every segment. Instead, we check once
     and invoke a side function that can use iterate_bvec() rather than
     iterate_and_advance() and supply a different step function
   - Move the copy-and-csum code to net/ where it can be in proximity
     with the code that uses it
   - Fold memcpy_and_csum() in to its two users
   - Move csum_and_copy_from_iter_full() out of line and merge in
     csum_and_copy_from_iter() since the former is the only caller of
     the latter
   - Move hash_and_copy_to_iter() to net/ where it can be with its only
     caller"
* tag 'vfs-6.7.iov_iter' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs:
  iov_iter, net: Move hash_and_copy_to_iter() to net/
  iov_iter, net: Merge csum_and_copy_from_iter{,_full}() together
  iov_iter, net: Fold in csum_and_memcpy()
  iov_iter, net: Move csum_and_copy_to/from_iter() to net/
  iov_iter: Don't deal with iter->copy_mc in memcpy_from_iter_mc()
  iov_iter: Convert iterate*() to inline funcs
  iov_iter: Derive user-backedness from the iterator type
  iov_iter: Renumber ITER_* constants
  infiniband: Use user_backed_iter() to see if iterator is UBUF/IOVEC
  sound: Fix snd_pcm_readv()/writev() to use iov access functions
  iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user()
  iov_iter: Remove last_offset from iov_iter as it was for ITER_PIPE
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_file_ops.c')
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_file_ops.c | 2 | 
1 files changed, 1 insertions, 1 deletions
| diff --git a/drivers/infiniband/hw/qib/qib_file_ops.c b/drivers/infiniband/hw/qib/qib_file_ops.c index 152952127f13..29e4c59aa23b 100644 --- a/drivers/infiniband/hw/qib/qib_file_ops.c +++ b/drivers/infiniband/hw/qib/qib_file_ops.c @@ -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); | 
