aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mm/dma-mapping.c
diff options
context:
space:
mode:
authorAndrey Konovalov <andrey.konovalov@linaro.org>2015-11-19 13:01:56 +0300
committerAndrey Konovalov <andrey.konovalov@linaro.org>2015-11-19 13:01:56 +0300
commit4b131c9bf8af9bc7a25441251f60a8ca7fc69c07 (patch)
treeba0bc4861f2f606b088b09c53389f06e88a69894 /arch/arm/mm/dma-mapping.c
parentd4e209db57abe07163fe84b43b533a4b6246b0c3 (diff)
parent08fad54a88981323247c7199ccbb8d42c596466a (diff)
Automatically merging tracking-integration-linux-qcomlt into merge-linux-linaroHEADll-20151119.0linux-linaro-4.3-2015.11ll_20151119.0linux-linaro
Conflicting files:
Diffstat (limited to 'arch/arm/mm/dma-mapping.c')
-rw-r--r--arch/arm/mm/dma-mapping.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index 1a7815e5421b..7e2b75f8b046 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -2126,6 +2126,15 @@ void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size,
struct dma_map_ops *dma_ops;
dev->archdata.dma_coherent = coherent;
+
+ /*
+ * Don't override the dma_ops if they have already been set. Ideally
+ * this should be the only location where dma_ops are set, remove this
+ * check when all other callers of set_dma_ops will have disappeared.
+ */
+ if (dev->archdata.dma_ops)
+ return;
+
if (arm_setup_iommu_dma_ops(dev, dma_base, size, iommu))
dma_ops = arm_get_iommu_dma_map_ops(coherent);
else