io_uring/zcrx: improve types for size calculation
authorPavel Begunkov <asml.silence@gmail.com>
Thu, 5 Feb 2026 18:04:43 +0000 (18:04 +0000)
committerJens Axboe <axboe@kernel.dk>
Tue, 10 Feb 2026 12:26:12 +0000 (05:26 -0700)
Make sure io_import_umem() promotes the type to long before calculating
the area size. While the area size is capped at 1GB by
io_validate_user_buf_range() and fits into an "int", it's still too
error prone.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/zcrx.c

index 3d39828..69567e1 100644 (file)
@@ -193,7 +193,7 @@ static int io_import_umem(struct io_zcrx_ifq *ifq,
                return PTR_ERR(pages);
 
        ret = sg_alloc_table_from_pages(&mem->page_sg_table, pages, nr_pages,
-                                       0, nr_pages << PAGE_SHIFT,
+                                       0, (unsigned long)nr_pages << PAGE_SHIFT,
                                        GFP_KERNEL_ACCOUNT);
        if (ret) {
                unpin_user_pages(pages, nr_pages);