aboutsummaryrefslogtreecommitdiff
path: root/sys/compat
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2022-09-23 22:13:19 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2022-09-26 19:42:02 +0000
commit0b9bc97342f98a911985ace5527aef97863dfd23 (patch)
tree7465955f2ba0ce18c0e054d822926e7541267166 /sys/compat
parentf486b352470edc82142766c2f3da2b8220774b7f (diff)
downloadsrc-0b9bc97342f98a911985ace5527aef97863dfd23.tar.gz
src-0b9bc97342f98a911985ace5527aef97863dfd23.zip
LinuxKPI: add DMA_MAPPING_ERROR
While we deal with 0 returned, some drivers directly use and check for DMA_MAPPING_ERROR. Add the case and check for both in dma_mapping_error(). MFC after: 1 week Reviewed by: hselasky Differential Revision: https://reviews.freebsd.org/D36686
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/linuxkpi/common/include/linux/dma-mapping.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/dma-mapping.h b/sys/compat/linuxkpi/common/include/linux/dma-mapping.h
index 8401006fbf5f..d3d25fcce857 100644
--- a/sys/compat/linuxkpi/common/include/linux/dma-mapping.h
+++ b/sys/compat/linuxkpi/common/include/linux/dma-mapping.h
@@ -288,11 +288,15 @@ dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle,
{
}
+#define DMA_MAPPING_ERROR (~(dma_addr_t)0)
+
static inline int
dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
{
- return (dma_addr == 0);
+ if (dma_addr == 0 || dma_addr == DMA_MAPPING_ERROR)
+ return (-ENOMEM);
+ return (0);
}
static inline unsigned int dma_set_max_seg_size(struct device *dev,