From: Jens Axboe Date: Mon, 13 Jun 2022 12:52:52 +0000 (-0600) Subject: Merge branch 'io_uring/io_uring-5.19' of https://github.com/isilence/linux into io_ur... X-Git-Tag: microblaze-v6.1~260^2~26 X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=feaf625e7055cdfd2c3d82cf60fb3892e27ea7bb;p=linux-2.6-microblaze.git Merge branch 'io_uring/io_uring-5.19' of https://github.com/isilence/linux into io_uring-5.19 Pull io_uring fixes from Pavel. * 'io_uring/io_uring-5.19' of https://github.com/isilence/linux: io_uring: fix double unlock for pbuf select io_uring: kbuf: fix bug of not consuming ring buffer in partial io case io_uring: openclose: fix bug of closing wrong fixed file io_uring: fix not locked access to fixed buf table io_uring: fix races with buffer table unregister io_uring: fix races with file table unregister --- feaf625e7055cdfd2c3d82cf60fb3892e27ea7bb diff --cc fs/io_uring.c index 85b116ddfd2a,4719eaee3b45..ca6170a66e62 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@@ -3876,12 -3847,10 +3888,10 @@@ static void __user *io_ring_buffer_sele { struct io_uring_buf_ring *br = bl->buf_ring; struct io_uring_buf *buf; - __u32 head = bl->head; + __u16 head = bl->head; - if (unlikely(smp_load_acquire(&br->tail) == head)) { - io_ring_submit_unlock(req->ctx, issue_flags); + if (unlikely(smp_load_acquire(&br->tail) == head)) return NULL; - } head &= bl->mask; if (head < IO_BUFFER_LIST_BUF_PER_PAGE) {