summaryrefslogtreecommitdiffstats
path: root/drivers/dma/of-dma.c
diff options
context:
space:
mode:
authorAndy Shevchenko2013-02-14 10:00:15 +0100
committerVinod Koul2013-02-14 15:30:53 +0100
commit88b386c0a7c278581d2b8e2c2761d12f6475938d (patch)
treeb4616aeeb7a8c5c057cd52d30a2ecadb744d6f1f /drivers/dma/of-dma.c
parentdmaengine: ste_dma40: do not remove descriptors for cyclic transfers (diff)
downloadkernel-qcow2-linux-88b386c0a7c278581d2b8e2c2761d12f6475938d.tar.gz
kernel-qcow2-linux-88b386c0a7c278581d2b8e2c2761d12f6475938d.tar.xz
kernel-qcow2-linux-88b386c0a7c278581d2b8e2c2761d12f6475938d.zip
dma: of-dma: protect list write operation by spin_lock
It's possible to have an inconsistency in the list due to unprotected operation on it. The patch adds a proper locking on the list operation. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Rob Herring <rob.herring@calxeda.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/of-dma.c')
-rw-r--r--drivers/dma/of-dma.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/dma/of-dma.c b/drivers/dma/of-dma.c
index 583e50e3d47c..69d04d28b1ef 100644
--- a/drivers/dma/of-dma.c
+++ b/drivers/dma/of-dma.c
@@ -118,7 +118,9 @@ int of_dma_controller_register(struct device_node *np,
ofdma->use_count = 0;
/* Now queue of_dma controller structure in list */
+ spin_lock(&of_dma_lock);
list_add_tail(&ofdma->of_dma_controllers, &of_dma_list);
+ spin_unlock(&of_dma_lock);
return 0;
}