dma-mapping: return an error code from dma_mapping_error
authorChristoph Hellwig <hch@lst.de>
Fri, 30 Nov 2018 09:59:37 +0000 (10:59 +0100)
committerChristoph Hellwig <hch@lst.de>
Thu, 6 Dec 2018 14:56:50 +0000 (06:56 -0800)
Currently dma_mapping_error returns a boolean as int, with 1 meaning
error.  This is rather unusual and many callers have to convert it to
errno value.  The callers are highly inconsistent with error codes
ranging from -ENOMEM over -EIO, -EINVAL and -EFAULT ranging to -EAGAIN.
Return -ENOMEM which seems to be what the largest number of callers
convert it to, and which also matches the typical error case where
we are out of resources.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/dma-mapping.h

index f4ac26d5294a03d3763e6cd20126a07e5dee8915..7799c2b278499db5f617bc420f9d9e136afa8822 100644 (file)
@@ -582,7 +582,7 @@ static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
        debug_dma_mapping_error(dev, dma_addr);
 
        if (dma_addr == DMA_MAPPING_ERROR)
-               return 1;
+               return -ENOMEM;
        return 0;
 }