diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c index 03396769c775..030d632d9839 100644 --- a/io_uring/zcrx.c +++ b/io_uring/zcrx.c @@ -287,6 +287,9 @@ static int io_zcrx_map_area(struct io_zcrx_ifq *ifq, struct io_zcrx_area *area) } ret = io_populate_area_dma(ifq, area); + if (ret && !area->mem.is_dmabuf) + dma_unmap_sgtable(ifq->dev, &area->mem.page_sg_table, + DMA_FROM_DEVICE, IO_DMA_ATTR); if (ret == 0) area->is_mapped = true; return ret;