[PATCH] of: Fix of_find_node_by_path breakage

Alexander Shiyan shc_work at mail.ru
Fri Jan 25 06:33:29 EST 2013


This patch fixes breakage of of_find_node_by_path when
node not found in tree. This fault is caused, for example,
when no aliases is present in dtb.

barebox at ConnectCore i.MX51:/ oftree -d /env/mm.dtb
/ {
        model = "Freescale i.MX51 CCMX51";
        compatible = "fsl,imx51-ccmx51", "fsl,imx51";
        chosen {
        };
        cpus {
                cpu at 0 {
                        compatible = "arm,cortex-a8";
                };
        };
};
barebox at ConnectCore i.MX51:/ oftree -p /env/mm.dtb
unable to handle NULL pointer dereference at address 0x00000000
pc : [<97f1f3f0>]    lr : [<97f19438>]
sp : 95eff988  ip : 00000001  fp : 97f43080
r10: 00000000  r9 : 97f4304c  r8 : 00000000
r7 : 00000000  r6 : e3510034  r5 : 00000001  r4 : 95f0eb28
r3 : 97f43054  r2 : 00000000  r1 : e1a0000b  r0 : 00000000
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32

no stack data available

Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
---
 drivers/of/base.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 7a41618..576841d 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -487,9 +487,9 @@ struct device_node *of_find_node_by_path(const char *path)
 
 	list_for_each_entry(np, &allnodes, list) {
 		if (np->full_name && (strcmp(np->full_name, path) == 0))
-			break;
+			return np;
 	}
-	return np;
+	return NULL;
 }
 EXPORT_SYMBOL(of_find_node_by_path);
 
-- 
1.7.3.4




More information about the barebox mailing list