In the Linux kernel, the following vulnerability has been resolved: iouring: ensure ctx->rings is stable for task work flags manipulation If DEFERTASKRUN | SETUPTASKRUN is used and task work is added while the ring is being resized, it's possible for the OR'ing of IORINGSQTASKRUN to happen in the small window of swapping into the new rings and the old rings being freed. Prevent this by adding a 2nd ->rings pointer, ->ringsrcu, which is protected by RCU. The task work flags manipulation is inside RCU already, and if the resize ring freeing is done post an RCU synchronize, then there's no need to add locking to the fast path of task work additions. Note: this is only done for DEFERTASKRUN, as that's the only setup mode that supports ring resizing. If this ever changes, then they too need to use the ioctxmarktaskrun() helper.