1. 06 5月, 2021 1 次提交
  2. 30 4月, 2021 7 次提交
  3. 27 4月, 2021 2 次提交
    • H
      io_uring: maintain drain logic for multishot poll requests · 7b289c38
      Hao Xu 提交于
      Now that we have multishot poll requests, one SQE can emit multiple
      CQEs. given below example:
          sqe0(multishot poll)-->sqe1-->sqe2(drain req)
      sqe2 is designed to issue after sqe0 and sqe1 completed, but since sqe0
      is a multishot poll request, sqe2 may be issued after sqe0's event
      triggered twice before sqe1 completed. This isn't what users leverage
      drain requests for.
      Here the solution is to wait for multishot poll requests fully
      completed.
      To achieve this, we should reconsider the req_need_defer equation, the
      original one is:
      
          all_sqes(excluding dropped ones) == all_cqes(including dropped ones)
      
      This means we issue a drain request when all the previous submitted
      SQEs have generated their CQEs.
      Now we should consider multishot requests, we deduct all the multishot
      CQEs except the cancellation one, In this way a multishot poll request
      behave like a normal request, so:
          all_sqes == all_cqes - multishot_cqes(except cancellations)
      
      Here we introduce cq_extra for it.
      Signed-off-by: NHao Xu <haoxu@linux.alibaba.com>
      Link: https://lore.kernel.org/r/1618298439-136286-1-git-send-email-haoxu@linux.alibaba.comSigned-off-by: NJens Axboe <axboe@kernel.dk>
      7b289c38
    • P
      io_uring: Check current->io_uring in io_uring_cancel_sqpoll · 6d042ffb
      Palash Oswal 提交于
      syzkaller identified KASAN: null-ptr-deref Write in
      io_uring_cancel_sqpoll.
      
      io_uring_cancel_sqpoll is called by io_sq_thread before calling
      io_uring_alloc_task_context. This leads to current->io_uring being NULL.
      io_uring_cancel_sqpoll should not have to deal with threads where
      current->io_uring is NULL.
      
      In order to cast a wider safety net, perform input sanitisation directly
      in io_uring_cancel_sqpoll and return for NULL value of current->io_uring.
      This is safe since if current->io_uring isn't set, then there's no way
      for the task to have submitted any requests.
      
      Reported-by: syzbot+be51ca5a4d97f017cd50@syzkaller.appspotmail.com
      Cc: stable@vger.kernel.org
      Signed-off-by: NPalash Oswal <hello@oswalpalash.com>
      Link: https://lore.kernel.org/r/20210427125148.21816-1-hello@oswalpalash.comSigned-off-by: NJens Axboe <axboe@kernel.dk>
      6d042ffb
  4. 26 4月, 2021 19 次提交
  5. 23 4月, 2021 1 次提交
  6. 21 4月, 2021 3 次提交
  7. 20 4月, 2021 2 次提交
  8. 18 4月, 2021 3 次提交
  9. 16 4月, 2021 2 次提交