Patchwork Check name property to determine partition nodes.

login
register
mail settings
Submitter Benjamin Krill
Date Jan. 23, 2009, 3:51 p.m.
Message ID <20090123155142.GA481@codiert.org>
Download mbox | patch
Permalink /patch/20085/
State New, archived
Headers show

Comments

Benjamin Krill - Jan. 23, 2009, 3:51 p.m.
SLOF has a further node which could not be evaluate
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.

Signed-off-by: Benjamin Krill <ben@codiert.org>
---
 drivers/mtd/ofpart.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
Benjamin Krill - Jan. 23, 2009, 4:13 p.m.
I missed a fix in this patch. I will resend it as v2.

cheers
 ben


* Benjamin Krill | 2009-01-23 16:51:42 [+0100]:

>SLOF has a further node which could not be evaluate
>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.
>
>Signed-off-by: Benjamin Krill <ben@codiert.org>
>---
> drivers/mtd/ofpart.c |    5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
>diff --git a/drivers/mtd/ofpart.c b/drivers/mtd/ofpart.c
>index 9e45b3f..c852cc2 100644
>--- a/drivers/mtd/ofpart.c
>+++ b/drivers/mtd/ofpart.c
>@@ -46,6 +46,11 @@ 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)
>+			continue;
>+
> 		reg = of_get_property(pp, "reg", &len);
> 		if (!reg || (len != 2 * sizeof(u32))) {
> 			of_node_put(pp);
>-- 
>1.6.0.6
>
>_______________________________________________
>Linuxppc-dev mailing list
>Linuxppc-dev@ozlabs.org
>https://ozlabs.org/mailman/listinfo/linuxppc-dev

Patch

diff --git a/drivers/mtd/ofpart.c b/drivers/mtd/ofpart.c
index 9e45b3f..c852cc2 100644
--- a/drivers/mtd/ofpart.c
+++ b/drivers/mtd/ofpart.c
@@ -46,6 +46,11 @@  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)
+			continue;
+
 		reg = of_get_property(pp, "reg", &len);
 		if (!reg || (len != 2 * sizeof(u32))) {
 			of_node_put(pp);