io_uring: check for iowq alloc_workqueue failure
authorPavel Begunkov <asml.silence@gmail.com>
Fri, 31 Jan 2025 17:28:21 +0000 (17:28 +0000)
committerJens Axboe <axboe@kernel.dk>
Mon, 17 Feb 2025 12:34:45 +0000 (05:34 -0700)
alloc_workqueue() can fail even during init in io_uring_init(), check
the result and panic if anything went wrong.

Fixes: 73eaa2b583493 ("io_uring: use private workqueue for exit work")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/3a046063902f888f66151f89fa42f84063b9727b.1738343083.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io_uring.c

index 9fade03ce0d97bcef1fe7bc78f384484d13071e9..7fff5d612201b291353b5b1326dad8432c5edc8d 100644 (file)
@@ -3920,6 +3920,7 @@ static int __init io_uring_init(void)
                                          SLAB_HWCACHE_ALIGN | SLAB_PANIC | SLAB_ACCOUNT);
 
        iou_wq = alloc_workqueue("iou_exit", WQ_UNBOUND, 64);
+       BUG_ON(!iou_wq);
 
 #ifdef CONFIG_SYSCTL
        register_sysctl_init("kernel", kernel_io_uring_disabled_table);