summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/ofpart.c
diff options
context:
space:
mode:
authorBenjamin Krill <ben@codiert.org>2009-01-23 17:18:05 +0100
committerDavid Woodhouse <David.Woodhouse@intel.com>2009-03-24 15:04:20 +0100
commit4b08e149c0e02e97ec49c2a31d14a0d3a02f8074 (patch)
tree2e09a06d3513913450ee639d00fa6a384044bc1f /drivers/mtd/ofpart.c
parent[MTD] [NAND] sh_flctl: fix hardware ecc handling for 2048 byte page (diff)
downloadlinux-4b08e149c0e02e97ec49c2a31d14a0d3a02f8074.tar.xz
linux-4b08e149c0e02e97ec49c2a31d14a0d3a02f8074.zip
[MTD] ofpart: Check name property to determine partition nodes.
SLOF has a further node which could not be evaluated by the current routine. The current routine returns because the node hasn't the required reg property. As fix this patch adds a check to determine the partition child nodes. If the node is not a partition the number of total partitions will be decreased and loop continues with the next nodes. Signed-off-by: Benjamin Krill <ben@codiert.org> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd/ofpart.c')
-rw-r--r--drivers/mtd/ofpart.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/mtd/ofpart.c b/drivers/mtd/ofpart.c
index 9e45b3f39c0e..3e164f0c9295 100644
--- a/drivers/mtd/ofpart.c
+++ b/drivers/mtd/ofpart.c
@@ -46,6 +46,13 @@ int __devinit of_mtd_parse_partitions(struct device *dev,
const u32 *reg;
int len;
+ /* check if this is a partition node */
+ partname = of_get_property(pp, "name", &len);
+ if (strcmp(partname, "partition") != 0) {
+ nr_parts--;
+ continue;
+ }
+
reg = of_get_property(pp, "reg", &len);
if (!reg || (len != 2 * sizeof(u32))) {
of_node_put(pp);