• Linus Torvalds's avatar
    Merge tag 'io_uring-5.8-2020-06-11' of git://git.kernel.dk/linux-block · b961f8dc
    Linus Torvalds authored
    Pull io_uring fixes from Jens Axboe:
     "A few late stragglers in here. In particular:
    
       - Validate full range for provided buffers (Bijan)
    
       - Fix bad use of kfree() in buffer registration failure (Denis)
    
       - Don't allow close of ring itself, it's not fully safe. Making it
         fully safe would require making the system call more expensive,
         which isn't worth it.
    
       - Buffer selection fix
    
       - Regression fix for O_NONBLOCK retry
    
       - Make IORING_OP_ACCEPT honor O_NONBLOCK (Jiufei)
    
       - Restrict opcode handling for SQ/IOPOLL (Pavel)
    
       - io-wq work handling cleanups and improvements (Pavel, Xiaoguang)
    
       - IOPOLL race fix (Xiaoguang)"
    
    * tag 'io_uring-5.8-2020-06-11' of git://git.kernel.dk/linux-block:
      io_uring: fix io_kiocb.flags modification race in IOPOLL mode
      io_uring: check file O_NONBLOCK state for accept
      io_uring: avoid unnecessary io_wq_work copy for fast poll feature
      io_uring: avoid whole io_wq_work copy for requests completed inline
      io_uring: allow O_NONBLOCK async retry
      io_wq: add per-wq work handler instead of per work
      io_uring: don't arm a timeout through work.func
      io_uring: remove custom ->func handlers
      io_uring: don't derive close state from ->func
      io_uring: use kvfree() in io_sqe_buffer_register()
      io_uring: validate the full range of provided buffers for access
      io_uring: re-set iov base/len for buffer select retry
      io_uring: move send/recv IOPOLL check into prep
      io_uring: deduplicate io_openat{,2}_prep()
      io_uring: do build_open_how() only once
      io_uring: fix {SQ,IO}POLL with unsupported opcodes
      io_uring: disallow close of ring itself
    b961f8dc
io_uring.c 192 KB