diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c index cc9df7e64a40..6d7abb1636e7 100644 --- a/io_uring/zcrx.c +++ b/io_uring/zcrx.c @@ -1645,7 +1645,7 @@ static bool io_zcrx_queue_cqe(struct io_kiocb *req, struct net_iov *niov, cqe->flags |= IORING_CQE_F_32; area = io_zcrx_iov_to_area(niov); - offset = off + (net_iov_idx(niov) << ifq->niov_shift); + offset = off + ((u64)net_iov_idx(niov) << ifq->niov_shift); rcqe = (struct io_uring_zcrx_cqe *)(cqe + 1); rcqe->off = offset + zcrx_area_id_to_token(area->area_id); rcqe->__pad = 0;