[PATCH 2/3] dma-mapping: Add auto cleanup support dma_map_single()
Frank Li
Frank.Li at nxp.com
Fri Oct 10 11:50:25 PDT 2025
Add auto cleanup support for dma_map_single().
fun()
{
CLASS(dma_map_single, dma)(dev, ...);
...
if (error)
return -EIO; // dma_unmap_single() will be auto-called
}
Signed-off-by: Frank Li <Frank.Li at nxp.com>
---
include/linux/dma-mapping.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 8248ff9363eed2ae5dc18e9eedb711b299201bea..89fc80e7cd85ba5a4068c61f58f3a578ab0a7a01 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -757,4 +757,12 @@ static inline int dma_mmap_wc(struct device *dev,
do { typeof(PTR) __p __maybe_unused = PTR; } while (0)
#endif
+DEFINE_GUARD_ARGS_CLASS(dma_map_single, dma_addr_t,
+ dma_mapping_error(_T.args.dev, _T.ret),
+ dma_unmap_single(_T->args.dev, _T->ret, _T->args.size, _T->args.dir),
+ dma_map_single,
+ (struct device *dev; void *ptr; size_t size; enum dma_data_direction dir),
+ (struct device *dev, void *ptr, size_t size, enum dma_data_direction dir),
+ (dev, ptr, size, dir))
+
#endif /* _LINUX_DMA_MAPPING_H */
--
2.34.1
More information about the linux-arm-kernel
mailing list