This fixes two problems in the new provided buffer ring feature. One is a simple arithmetic bug (I think this came out from a refactor). The other is due to type differences between head & tail, which causes it to sometimes reuse an old buffer incorrectly. Patch 1&2 fix bugs Patch 3 limits the size of the ring as it's not possible to address more entries with 16 bit head/tail I will send test cases for liburing shortly. One question might be if we should change the type of ring_entries to uint16_t in struct io_uring_buf_reg? Dylan Yudaken (3): io_uring: fix index calculation io_uring: fix types in provided buffer ring io_uring: limit size of provided buffer ring fs/io_uring.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) base-commit: f2906aa863381afb0015a9eb7fefad885d4e5a56 -- 2.30.2