]> git.baikalelectronics.ru Git - kernel.git/commitdiff
io_uring: mem-account pbuf buckets
authorPavel Begunkov <asml.silence@gmail.com>
Thu, 4 Aug 2022 14:13:46 +0000 (15:13 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 4 Aug 2022 14:35:07 +0000 (08:35 -0600)
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>
io_uring/kbuf.c

index e538fa7cb727cf486fdf9c00e7aa6b67e2c22d3d..a73f40a4cfe67d5e68418902e98b81054bfdc2da 100644 (file)
@@ -436,7 +436,7 @@ int io_provide_buffers(struct io_kiocb *req, unsigned int issue_flags)
 
        bl = io_buffer_get_list(ctx, p->bgid);
        if (unlikely(!bl)) {
-               bl = kzalloc(sizeof(*bl), GFP_KERNEL);
+               bl = kzalloc(sizeof(*bl), GFP_KERNEL_ACCOUNT);
                if (!bl) {
                        ret = -ENOMEM;
                        goto err;