--- /dev/null
+From cc18cc5e82033d406f54144ad6f8092206004684 Mon Sep 17 00:00:00 2001
+From: Pavel Begunkov <asml.silence@gmail.com>
+Date: Thu, 4 Aug 2022 15:13:46 +0100
+Subject: io_uring: mem-account pbuf buckets
+
+From: Pavel Begunkov <asml.silence@gmail.com>
+
+commit cc18cc5e82033d406f54144ad6f8092206004684 upstream.
+
+Potentially, someone may create as many pbuf bucket as there are indexes
+in an xarray without any other restrictions bounding our memory usage,
+put memory needed for the buckets under memory accounting.
+
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
+Link: https://lore.kernel.org/r/d34c452e45793e978d26e2606211ec9070d329ea.1659622312.git.asml.silence@gmail.com
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ io_uring/io_uring.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/io_uring/io_uring.c
++++ b/io_uring/io_uring.c
+@@ -4927,7 +4927,7 @@ static int io_provide_buffers(struct io_
+
+ bl = io_buffer_get_list(ctx, p->bgid);
+ if (unlikely(!bl)) {
+- bl = kmalloc(sizeof(*bl), GFP_KERNEL);
++ bl = kzalloc(sizeof(*bl), GFP_KERNEL_ACCOUNT);
+ if (!bl) {
+ ret = -ENOMEM;
+ goto err;