OSDN Git Service

dma-mapping: clear dev->dma_ops in arch_teardown_dma_ops
authorChristoph Hellwig <hch@lst.de>
Fri, 24 Aug 2018 08:29:02 +0000 (10:29 +0200)
committerChristoph Hellwig <hch@lst.de>
Sat, 8 Sep 2018 09:19:38 +0000 (11:19 +0200)
There is no reason to leave the per-device dma_ops around when
deconfiguring a device, so move this code from arm64 into the
common code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
arch/arm64/include/asm/dma-mapping.h
arch/arm64/mm/dma-mapping.c
include/linux/dma-mapping.h

index b7847eb..0a2d133 100644 (file)
@@ -39,11 +39,6 @@ void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size,
                        const struct iommu_ops *iommu, bool coherent);
 #define arch_setup_dma_ops     arch_setup_dma_ops
 
-#ifdef CONFIG_IOMMU_DMA
-void arch_teardown_dma_ops(struct device *dev);
-#define arch_teardown_dma_ops  arch_teardown_dma_ops
-#endif
-
 /* do not use this function in a driver */
 static inline bool is_device_dma_coherent(struct device *dev)
 {
index 072c51f..cdcb73d 100644 (file)
@@ -862,11 +862,6 @@ out_err:
                 dev_name(dev));
 }
 
-void arch_teardown_dma_ops(struct device *dev)
-{
-       dev->dma_ops = NULL;
-}
-
 #else
 
 static void __iommu_setup_dma_ops(struct device *dev, u64 dma_base, u64 size,
index 1423b69..eafd6f3 100644 (file)
@@ -664,7 +664,10 @@ static inline void arch_setup_dma_ops(struct device *dev, u64 dma_base,
 #endif
 
 #ifndef arch_teardown_dma_ops
-static inline void arch_teardown_dma_ops(struct device *dev) { }
+static inline void arch_teardown_dma_ops(struct device *dev)
+{
+       dev->dma_ops = NULL;
+}
 #endif
 
 static inline unsigned int dma_get_max_seg_size(struct device *dev)