linux/io_uring
Linus Torvalds 3f1fe48a36 io_uring-7.3-20261002
-----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmq/wk0QHGF4Ym9lQGtl
 cm5lbC5kawAKCRD301j7KXHgpkD/D/4mOJ3xw+h4BAzHa6SyquNgxXls8MXeJOrv
 DfTDjclyBMMY60ALlZENTfoM1lIY22eFyl/e0guc9WnDqFEG2MwOAmLh1+YLDEdP
 lX2c0ICo1Q3/JKUV2y6JPJeERalq+yP1HMl7ZhH2nIXX0vxW2ALGzWtmr1G5DfyI
 KakNq7pMSQC554p5dZe3+X9HcxYFX8/EslygmNVquiRo6hm1Ys4srG9kJw/iOsw4
 7ryI6hRAMjgmI39h/RVBnUVvGSgo+MU2OzPCYUqIN6lK+fvPiGaPfWib5NTOdpSJ
 09PNhtB4gijCW+bnYAvXEQohq2ikPOGPmRYN320vUF6rryWWRJLF86IbE4t+/j3n
 KV1i0UZK1Y7cL3HMRr1SKfedsNRjpoTdyBlMxC+hWbjcIFQNV1oLo6gEu5r/8M3b
 oMiaQl18KHKcWhw5bbLGr9dSjgN2XHCZ0j38QwzGbbjKC+TRS0mYrjXCgNzEfdIC
 tsnLWQE5CKPhWw2u3R/lMRFtSWs/ZWKOamONNGgxgGt53kbKOx1dY7UvhEx/cvxu
 nA84L6sgE6KQzkQ5PshF3OFXw7ckm3v7hh0aiUtjczGz7FUK6db/h3sudxfiXazg
 P7veXjlqnw4ny8MzfnSXkhjXM/zD3s8c33dNjEcgvVXVLCAkWWrTsiO9NTUA3fMI
 7IC5n7RoSg==
 =Sg1l
 -----END PGP SIGNATURE-----

Merge tag 'io_uring-7.3-20261002' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux

Pull io_uring fixes from Jens Axboe:

 - Fix a task_work add use-after-free with SQPOLL.

   The sqpoll thread could pop and complete the last request while
   io_req_normal_work_add() was still looking at them after the mpscq
   push.

   Use the same approach as DEFER_TASKRUN to protect from that, holding
   an RCU read lock across the add, and have exit wait for an RCU grace
   period for SQPOLL rings as well.

 - CQE32 ring fixes: correct the free entry check for 32b CQEs, zero the
   big_cqe for aux CQEs, and only post the dummy skip CQE on CQE_MIXED
   rings

 - Mark the source filter table as COW when cloning bpf filters, so
   registering another filter on the source doesn't modify the shared
   table in place

 - Initialize the task context before running the BPF loop

 - Requeue zcrx multishot receives stopped by a local resource

 - End a TX_TIMESTAMP multishot cmd when the CQ is full (lollipopkit)

* tag 'io_uring-7.3-20261002' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux:
  io_uring: fix task_work add use-after-free with SQPOLL
  io_uring/cmd_net: end TX_TIMESTAMP multishot when the CQ is full
  io_uring/zcrx: requeue multishot receives stopped by a local resource
  io_uring: initialize task context before running the BPF loop
  io_uring: zero big_cqe for aux CQEs on CQE32 rings
  io_uring: fix free entry check for 32b CQEs on CQE32 rings
  io_uring: only post the dummy skip CQE on CQE_MIXED rings
  io_uring/bpf_filter: mark source as COW when cloning filters
2026-10-02 12:17:24 -07:00
..
advise.c io_uring: finish IOU_OK -> IOU_COMPLETE transition 2025-05-21 08:41:16 -06:00
advise.h
alloc_cache.c
alloc_cache.h io_uring/rsrc: use kvfree() for the imu cache 2026-04-21 12:19:01 -06:00
bpf_filter.c io_uring/bpf_filter: mark source as COW when cloning filters 2026-09-21 10:50:04 -06:00
bpf_filter.h io_uring: allow registration of per-task restrictions 2026-02-06 07:29:19 -07:00
bpf-ops.c io_uring/bpf-ops: reject re-registration of an already-bound ops 2026-07-17 11:17:54 -06:00
bpf-ops.h io_uring/bpf-ops: restrict ctx access to BPF 2026-06-02 11:20:21 -06:00
cancel.c io_uring: preserve task restrictions across exec 2026-07-30 14:40:22 -06:00
cancel.h io_uring/cancel: de-unionize file and user_data in struct io_cancel_data 2026-02-16 14:16:27 -07:00
cmd_net.c io_uring/cmd_net: end TX_TIMESTAMP multishot when the CQ is full 2026-09-28 08:29:09 -06:00
epoll.c Revert "io_uring/epoll: disallow adding an epoll file to an epoll context" 2026-07-30 10:36:06 -06:00
epoll.h io_uring/epoll: add support for IORING_OP_EPOLL_WAIT 2025-02-20 07:59:56 -07:00
eventfd.c io_uring: defer eventfd signaling when queued from a wakeup handler 2026-08-15 16:56:49 -06:00
eventfd.h io_uring: defer eventfd signaling when queued from a wakeup handler 2026-08-15 16:56:49 -06:00
fdinfo.c for-7.2/io_uring-20260615 2026-06-16 12:53:59 +05:30
fdinfo.h
filetable.c io_uring/filetable: clamp alloc_hint to the configured alloc range 2026-02-11 15:20:44 -07:00
filetable.h io_uring: Trim out unused includes 2026-01-05 17:08:20 -07:00
fs.c io_uring/fs: check unused sqe fields for unlinkat 2026-07-14 13:18:11 -06:00
fs.h
futex.c io_uring: defer eventfd signaling when queued from a wakeup handler 2026-08-15 16:56:49 -06:00
futex.h io_uring/futex: don't mark futex wake requests as inflight 2026-07-30 10:35:26 -06:00
io_uring.c io_uring-7.3-20261002 2026-10-02 12:17:24 -07:00
io_uring.h for-7.3/block-20260819 2026-08-20 13:55:16 -07:00
io-wq.c io_uring/io-wq: fix worker accounting when canceling creation callbacks 2026-08-15 17:29:22 -06:00
io-wq.h io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
kbuf.c for-7.3/block-20260819 2026-08-20 13:55:16 -07:00
kbuf.h io_uring/kbuf: support min length left for incremental buffers 2026-04-28 16:08:56 -06:00
Kconfig io_uring/bpf-ops: implement loop_step with BPF struct_ops 2026-03-16 16:15:00 -06:00
loop.c io_uring: initialize task context before running the BPF loop 2026-09-23 05:20:49 -06:00
loop.h io_uring/bpf-ops: restrict ctx access to BPF 2026-06-02 11:20:21 -06:00
Makefile io_uring/bpf-ops: implement loop_step with BPF struct_ops 2026-03-16 16:15:00 -06:00
memmap.c for-7.3/io_uring-20260819 2026-08-20 13:47:56 -07:00
memmap.h io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
mock_file.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
mpscq.h io_uring: get rid of tw_pending for !DEFER task work 2026-06-16 09:48:00 -06:00
msg_ring.c io_uring/msg_ring: reject CQE32 flag pass-through to normal rings 2026-07-01 05:39:26 -06:00
msg_ring.h
napi.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
napi.h io_uring/napi: clear tracked NAPI entries on unregister 2026-05-03 23:21:23 -06:00
net.c io_uring/net: don't overconsume buffers when using MSG_TRUNC 2026-09-09 09:58:56 -06:00
net.h io_uring/net: allow filtering on IORING_OP_CONNECT 2026-05-14 07:23:01 -06:00
nop.c io_uring/nop: fix file reference leak with IOSQE_FIXED_FILE 2026-06-16 06:20:01 -06:00
nop.h
notif.c io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
notif.h
opdef.c io_uring/futex: don't mark futex wake requests as inflight 2026-07-30 10:35:26 -06:00
opdef.h io_uring: remove iopoll_queue from struct io_issue_def 2026-03-16 16:14:14 -06:00
openclose.c io_uring/openclose: fix io_pipe_fixed() slot tracking for specific slots 2026-02-11 20:31:21 -07:00
openclose.h io_uring/bpf_filter: allow filtering on contents of struct open_how 2026-01-27 11:10:46 -07:00
poll.c io_uring: defer eventfd signaling when queued from a wakeup handler 2026-08-15 16:56:49 -06:00
poll.h io_uring: add wrapper type for io_req_tw_func_t arg 2025-11-03 08:31:26 -07:00
query.c io_uring/query: cap user size passed to copy_struct_to_user 2026-08-25 11:49:48 -06:00
query.h io_uring/query: drop unused io_handle_query_entry() ctx arg 2025-11-26 09:37:10 -07:00
refs.h io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
register.c io_uring/register: preserve SQ array entries on resize 2026-06-16 10:06:49 -06:00
register.h io_uring: unify getting ctx from passed in file descriptor 2026-04-08 13:21:35 -06:00
rsrc.c fuse update for 7.3 2026-08-25 07:59:44 -07:00
rsrc.h fuse update for 7.3 2026-08-25 07:59:44 -07:00
rw.c io_uring/rw: keep CQE flags on iopoll requests when adding kbuf flags 2026-09-09 09:59:02 -06:00
rw.h block: split out a new blk_plug.h header 2026-08-04 06:57:05 -06:00
slist.h io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
splice.c io_uring: don't include filetable.h in io_uring.h 2025-09-08 13:20:46 -06:00
splice.h
sqpoll.c io_uring: annotate remote tasks for kcoverage 2026-06-30 17:32:26 -06:00
sqpoll.h io_uring/sqpoll: switch away from getrusage() for CPU accounting 2025-10-22 10:51:20 -06:00
statx.c allow incomplete imports of filenames 2026-01-13 15:18:07 -05:00
statx.h
sync.c io_uring/sync: validate passed in offset 2026-01-21 11:50:59 -07:00
sync.h
tctx.c io_uring: preserve task restrictions across exec 2026-07-30 14:40:22 -06:00
tctx.h io_uring: preserve task restrictions across exec 2026-07-30 14:40:22 -06:00
timeout.c io_uring/timeout: splice timed out link in timeout handler 2026-05-20 10:02:58 -06:00
timeout.h io_uring/timeout: migrate reqs from ts64 to ktime 2026-03-09 07:21:54 -06:00
truncate.c fs: pass on FTRUNCATE_* flags to do_truncate 2026-03-23 12:41:57 +01:00
truncate.h
tw.c io_uring: fix task_work add use-after-free with SQPOLL 2026-09-29 06:52:39 -06:00
tw.h io_uring: remove the per-ctx fallback task_work machinery 2026-06-13 06:27:20 -06:00
uring_cmd.c for-7.3/io_uring-20260819 2026-08-20 13:47:56 -07:00
uring_cmd.h io_uring/cmd: remove struct io_uring_cmd_data 2025-07-18 12:34:56 -06:00
wait.c for-7.2/io_uring-20260615 2026-06-16 12:53:59 +05:30
wait.h io_uring: switch local task_work to a mpscq 2026-06-13 06:27:06 -06:00
waitid.c io_uring/waitid: avoid siginfo copy during ring teardown 2026-08-25 11:51:38 -06:00
waitid.h
xattr.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
xattr.h
zcrx.c io_uring-7.3-20261002 2026-10-02 12:17:24 -07:00
zcrx.h for-7.3/io_uring-20260819 2026-08-20 13:47:56 -07:00