swiotlb: fix map_sg failure handling sg list elements might not be continuous. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/lib/swiotlb.c b/lib/swiotlb.c index c419ecf..752fd95 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c
@@ -696,7 +696,7 @@ /* Don't panic here, we expect map_sg users to do proper error handling. */ swiotlb_full(hwdev, sg->length, dir, 0); - swiotlb_unmap_sg(hwdev, sg - i, i, dir); + swiotlb_unmap_sg(hwdev, sgl, i, dir); sgl[0].dma_length = 0; return 0; }