summaryrefslogtreecommitdiff
path: root/drivers/dma/of-dma.c
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2013-02-14 13:00:15 +0400
committerVinod Koul <vinod.koul@intel.com>2013-02-14 18:30:53 +0400
commit88b386c0a7c278581d2b8e2c2761d12f6475938d (patch)
treeb4616aeeb7a8c5c057cd52d30a2ecadb744d6f1f /drivers/dma/of-dma.c
parent7dd145252574e34d92ad574e5168e4115639c0be (diff)
downloadlinux-88b386c0a7c278581d2b8e2c2761d12f6475938d.tar.xz
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;
}