This series fixes two issues in io_cqe_cache_refill() and
io_fill_nop_cqe() for 32-byte CQEs:
1. Restrict skip CQE insertion at off + 1 == ctx->cq_entries to
IORING_SETUP_CQE_MIXED rings so pure IORING_SETUP_CQE32 rings do not
emit bogus IORING_CQE_F_SKIP entries.
2. Require 3 free CQ slots in io_fill_nop_cqe() before emitting a skip
CQE for a 32-byte CQE wrapping across the end of an
IORING_SETUP_CQE_MIXED ring, preventing an orphan skip CQE when fewer
than 3 slots are free.
Changes in v2:
- Split into a 2-patch series and drop the third hunk from v1, as
requested by Jens Axboe.
Hui Peng (2):
io_uring: only insert skip CQE for IORING_SETUP_CQE_MIXED
io_uring: require 3 free CQ slots for 32b CQE in io_fill_nop_cqe()
io_uring/io_uring.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
--
2.55.0.1082.g2b9226bbc0-goog