From: Pavel Begunkov Date: Tue, 31 Mar 2026 21:07:42 +0000 (+0100) Subject: io_uring/zcrx: use dma_len for chunk size calculation X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7120b87bed922ae2f1968c081377162380e1547e;p=thirdparty%2Flinux.git io_uring/zcrx: use dma_len for chunk size calculation Buffers are now dma-mapped earlier and we can sg_dma_len(), otherwise, since it's walking with for_each_sgtable_dma_sg(), it might wrongfully reject some configurations. As a bonus, it'd now be able to use larger chunks if dma addresses are coalesced e.g by iommu. Fixes: 8c0cab0b7bf7 ("io_uring/zcrx: always dma map in advance") Signed-off-by: Pavel Begunkov Link: https://patch.msgid.link/03b219af3f6cfdd1cf64679b8bab7461e47cc123.1774780198.git.asml.silence@gmail.com Signed-off-by: Jens Axboe --- diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c index d84ad40eae498..3bf800426fd20 100644 --- a/io_uring/zcrx.c +++ b/io_uring/zcrx.c @@ -63,7 +63,7 @@ static int io_area_max_shift(struct io_zcrx_mem *mem) unsigned i; for_each_sgtable_dma_sg(sgt, sg, i) - shift = min(shift, __ffs(sg->length)); + shift = min(shift, __ffs(sg_dma_len(sg))); return shift; }