]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Merge tag 'for-6.15/io_uring-reg-vec-20250327' of git://git.kernel.dk/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 28 Mar 2025 22:07:04 +0000 (15:07 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 28 Mar 2025 22:07:04 +0000 (15:07 -0700)
Pull more io_uring updates from Jens Axboe:
 "Final separate updates for io_uring.

  This started out as a series of cleanups improvements and improvements
  for registered buffers, but as the last series of the io_uring changes
  for 6.15, it also collected a few fixes for the other branches on top:

   - Add support for vectored fixed/registered buffers.

     Previously only single segments have been supported for commands,
     now vectored variants are supported as well. This series includes
     networking and file read/write support.

   - Small series unifying return codes across multi and single shot.

   - Small series cleaning up registerd buffer importing.

   - Adding support for vectored registered buffers for uring_cmd.

   - Fix for io-wq handling of command reissue.

   - Various little fixes and tweaks"

* tag 'for-6.15/io_uring-reg-vec-20250327' of git://git.kernel.dk/linux: (25 commits)
  io_uring/net: fix io_req_post_cqe abuse by send bundle
  io_uring/net: use REQ_F_IMPORT_BUFFER for send_zc
  io_uring: move min_events sanitisation
  io_uring: rename "min" arg in io_iopoll_check()
  io_uring: open code __io_post_aux_cqe()
  io_uring: defer iowq cqe overflow via task_work
  io_uring: fix retry handling off iowq
  io_uring/net: only import send_zc buffer once
  io_uring/cmd: introduce io_uring_cmd_import_fixed_vec
  io_uring/cmd: add iovec cache for commands
  io_uring/cmd: don't expose entire cmd async data
  io_uring: rename the data cmd cache
  io_uring: rely on io_prep_reg_vec for iovec placement
  io_uring: introduce io_prep_reg_iovec()
  io_uring: unify STOP_MULTISHOT with IOU_OK
  io_uring: return -EAGAIN to continue multishot
  io_uring: cap cached iovec/bvec size
  io_uring/net: implement vectored reg bufs for zctx
  io_uring/net: convert to struct iou_vec
  io_uring/net: pull vec alloc out of msghdr import
  ...

1  2 
include/uapi/linux/io_uring.h
io_uring/io_uring.c
io_uring/io_uring.h
io_uring/net.c
io_uring/rsrc.c
io_uring/rw.c

Simple merge
Simple merge
Simple merge
diff --cc io_uring/net.c
index 89cd45bacd7c36a2e7c2e3df3c4b7d8bf5b845e5,616e953ef0aeca8b7c37b34c206713607e02598a..8944eb679024a8d9b5653f934be5b8bea967b0e7
@@@ -154,10 -151,13 +151,13 @@@ static void io_netmsg_recycle(struct io
        }
  
        /* Let normal cleanup path reap it if we fail adding to the cache */
-       io_alloc_cache_kasan(&hdr->free_iov, &hdr->free_iov_nr);
+       io_alloc_cache_vec_kasan(&hdr->vec);
+       if (hdr->vec.nr > IO_VEC_CACHE_SOFT_CAP)
+               io_vec_free(&hdr->vec);
        if (io_alloc_cache_put(&req->ctx->netmsg_cache, hdr)) {
                req->async_data = NULL;
 -              req->flags &= ~REQ_F_ASYNC_DATA;
 +              req->flags &= ~(REQ_F_ASYNC_DATA|REQ_F_NEED_CLEANUP);
        }
  }
  
diff --cc io_uring/rsrc.c
Simple merge
diff --cc io_uring/rw.c
Simple merge