]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
io_uring: use GFP_NOWAIT for overflow CQEs on legacy rings
authorAlexandre Negrel <alexandre@negrel.dev>
Tue, 30 Dec 2025 18:57:28 +0000 (19:57 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 31 Dec 2025 01:49:31 +0000 (18:49 -0700)
Allocate the overflowing CQE with GFP_NOWAIT instead of GFP_ATOMIC. This
changes causes allocations to fail earlier in out-of-memory situations,
rather than being deferred. Using GFP_ATOMIC allows a process to exceed
memory limits.

Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220794
Signed-off-by: Alexandre Negrel <alexandre@negrel.dev>
Link: https://lore.kernel.org/io-uring/20251229201933.515797-1-alexandre@negrel.dev/
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io_uring.c

index 6cb24cdf8e684661dbe2c43a06ac18724b45b794..709943fedaf40f0734ade310600ce9d47576c38a 100644 (file)
@@ -864,7 +864,7 @@ static __cold bool io_cqe_overflow_locked(struct io_ring_ctx *ctx,
 {
        struct io_overflow_cqe *ocqe;
 
-       ocqe = io_alloc_ocqe(ctx, cqe, big_cqe, GFP_ATOMIC);
+       ocqe = io_alloc_ocqe(ctx, cqe, big_cqe, GFP_NOWAIT);
        return io_cqring_add_overflow(ctx, ocqe);
 }