dma-direct: return appropriate error code from dma_direct_map_sg()
authorLogan Gunthorpe <logang@deltatee.com>
Thu, 29 Jul 2021 20:15:20 +0000 (14:15 -0600)
committerChristoph Hellwig <hch@lst.de>
Mon, 9 Aug 2021 15:13:04 +0000 (17:13 +0200)
Now that the map_sg() op expects error codes instead of return zero on
error, convert dma_direct_map_sg() to return an error code. Per the
documentation for dma_map_sgtable(), -EIO is returned due to an
DMA_MAPPING_ERROR with unknown cause.

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
kernel/dma/direct.c

index f737e334705945c938159e84e8b12fde2face7c1..f33ceb68aef2dc270df8c6842754fb60a79bf77f 100644 (file)
@@ -411,7 +411,7 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 
 out_unmap:
        dma_direct_unmap_sg(dev, sgl, i, dir, attrs | DMA_ATTR_SKIP_CPU_SYNC);
-       return 0;
+       return -EIO;
 }
 
 dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,