]> www.infradead.org Git - users/hch/block.git/commitdiff
Merge branch 'for-5.19/io_uring' into for-5.19/io_uring-passthrough
authorJens Axboe <axboe@kernel.dk>
Thu, 5 May 2022 23:21:29 +0000 (17:21 -0600)
committerJens Axboe <axboe@kernel.dk>
Thu, 5 May 2022 23:21:29 +0000 (17:21 -0600)
* for-5.19/io_uring: (85 commits)
  io_uring: don't clear req->kbuf when buffer selection is done
  io_uring: eliminate the need to track provided buffer ID separately
  io_uring: move provided buffer state closer to submit state
  io_uring: move provided and fixed buffers into the same io_kiocb area
  io_uring: abstract out provided buffer list selection
  io_uring: never call io_buffer_select() for a buffer re-select
  io_uring: get rid of hashed provided buffer groups
  io_uring: always use req->buf_index for the provided buffer group
  io_uring: ignore ->buf_index if REQ_F_BUFFER_SELECT isn't set
  io_uring: kill io_rw_buffer_select() wrapper
  io_uring: make io_buffer_select() return the user address directly
  io_uring: kill io_recv_buffer_select() wrapper
  io_uring: use 'sr' vs 'req->sr_msg' consistently
  io_uring: add POLL_FIRST support for send/sendmsg and recv/recvmsg
  io_uring: check IOPOLL/ioprio support upfront
  io_uring: replace smp_mb() with smp_mb__after_atomic() in io_sq_thread()
  io_uring: add IORING_SETUP_TASKRUN_FLAG
  io_uring: use TWA_SIGNAL_NO_IPI if IORING_SETUP_COOP_TASKRUN is used
  io_uring: set task_work notify method at init time
  io-wq: use __set_notify_signal() to wake workers
  ...

1  2 
fs/io_uring.c

diff --cc fs/io_uring.c
index e01f595f5b7d7bd2b3b84dfe498f13ea1037b02b,b6d491c9a25f319b8a26cca5253c3f5a8bcf7070..a3ebcf87d1b156db2239a5e5dd6ae54884546333
@@@ -5206,10 -5298,8 +5299,10 @@@ static int io_sendmsg_prep(struct io_ki
  {
        struct io_sr_msg *sr = &req->sr_msg;
  
-       if (unlikely(req->ctx->flags & IORING_SETUP_IOPOLL))
+       if (unlikely(sqe->file_index))
                return -EINVAL;
 +      if (unlikely(sqe->addr2 || sqe->file_index))
 +              return -EINVAL;
  
        sr->umsg = u64_to_user_ptr(READ_ONCE(sqe->addr));
        sr->len = READ_ONCE(sqe->len);
@@@ -5419,10 -5534,8 +5537,10 @@@ static int io_recvmsg_prep(struct io_ki
  {
        struct io_sr_msg *sr = &req->sr_msg;
  
-       if (unlikely(req->ctx->flags & IORING_SETUP_IOPOLL))
+       if (unlikely(sqe->file_index))
                return -EINVAL;
 +      if (unlikely(sqe->addr2 || sqe->file_index))
 +              return -EINVAL;
  
        sr->umsg = u64_to_user_ptr(READ_ONCE(sqe->addr));
        sr->len = READ_ONCE(sqe->len);