[PATCH] dma: of-dma: return error when 'dma-cells' not found
Padmavathi Venna
padma.v at samsung.com
Tue Mar 5 20:25:30 EST 2013
This patch returns error when 'dma-cells' property not found
in the corresponding device node. With out this change there
is a crash in the generic dma incompatible platforms.
Signed-off-by: Padmavathi Venna <padma.v at samsung.com>
---
Based on Vinod Koul next branch.
drivers/dma/of-dma.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/drivers/dma/of-dma.c b/drivers/dma/of-dma.c
index 69d04d2..46aca0d 100644
--- a/drivers/dma/of-dma.c
+++ b/drivers/dma/of-dma.c
@@ -92,6 +92,7 @@ int of_dma_controller_register(struct device_node *np,
void *data)
{
struct of_dma *ofdma;
+ const __be32 *ip;
int nbcells;
if (!np || !of_dma_xlate) {
@@ -103,7 +104,12 @@ int of_dma_controller_register(struct device_node *np,
if (!ofdma)
return -ENOMEM;
- nbcells = be32_to_cpup(of_get_property(np, "#dma-cells", NULL));
+ ip = of_get_property(np, "#dma-cells", NULL);
+ if (!ip)
+ return -ENXIO;
+
+ nbcells = be32_to_cpup(ip);
+
if (!nbcells) {
pr_err("%s: #dma-cells property is missing or invalid\n",
__func__);
--
1.7.4.4
More information about the devicetree-discuss
mailing list