summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-08-14 09:26:06 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-08-14 09:35:24 +0200
commite60778e041eca978e7d859bb79198f1e3b54480d (patch)
treeea5abc1edb77e9cd06e11da6e713be295d74fc05
parent804fd9a46985df92dd648c41c6e6bc199c536a46 (diff)
downloadbarebox-e60778e041eca978e7d859bb79198f1e3b54480d.tar.gz
barebox-e60778e041eca978e7d859bb79198f1e3b54480d.tar.xz
of: Fix endless loop in of_add_memory
of_add_memory is stuck in an endless loop when a memory bank with zero size is passed. Fix this. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/of/base.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 34a06c298e..33dfd5a51d 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -1555,8 +1555,11 @@ int of_add_memory(struct device_node *node, bool dump)
return -ENXIO;
while (!of_address_to_resource(node, n, &res)) {
- if (!resource_size(&res))
+ if (!resource_size(&res)) {
+ n++;
continue;
+ }
+
of_add_memory_bank(node, dump, n,
res.start, resource_size(&res));
n++;