From: Pavel Begunkov Date: Tue, 6 Sep 2022 16:11:17 +0000 (+0100) Subject: io_uring: recycle kbuf recycle on tw requeue X-Git-Tag: v6.1-rc5~376^2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=336d28a8f38013a069f2d46e73aaa1880ef17a47;p=platform%2Fkernel%2Flinux-starfive.git io_uring: recycle kbuf recycle on tw requeue When we queue a request via tw for execution it's not going to be executed immediately, so when io_queue_async() hits IO_APOLL_READY and queues a tw but doesn't try to recycle/consume the buffer some other request may try to use the the buffer. Fixes: c7fb19428d67 ("io_uring: add support for ring mapped supplied buffers") Signed-off-by: Pavel Begunkov Link: https://lore.kernel.org/r/a19bc9e211e3184215a58e129b62f440180e9212.1662480490.git.asml.silence@gmail.com Signed-off-by: Jens Axboe --- diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index f9be9b7..b9640ad 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -1728,6 +1728,7 @@ static void io_queue_async(struct io_kiocb *req, int ret) switch (io_arm_poll_handler(req, 0)) { case IO_APOLL_READY: + io_kbuf_recycle(req, 0); io_req_task_queue(req); break; case IO_APOLL_ABORTED: