Thread (15 messages) flat view 15 messages, 5 authors, 2014-02-21

Re: [PATCH v4 0/4] Bugfix for of_match_node ordering

From: Kevin Hao <hidden>
Date: 2014-02-20 10:13:29
Also in: linux-samsung-soc, lkml
Subsystem: open firmware and flattened device tree, the rest · Maintainers: Rob Herring, Saravana Kannan, Linus Torvalds

On Thu, Feb 20, 2014 at 02:09:08PM +0530, Sachin Kamat wrote:
Hi Grant,

I observe the following boot failure with today's (next-20140220) linux-next
tree on Exynos based boards with the default exynos_defconfig.
Does this help?
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 8a27fc907ab6..9cc893530b9a 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -381,12 +381,16 @@ static int __of_device_is_compatible(const struct device_node *device,
 
 	/* Compatible match has highest priority */
 	if (compat && compat[0]) {
-		of_property_for_each_string(device, "compatible", prop, cp) {
+		prop = __of_find_property(device, "compatible", NULL);
+		if (!prop)
+			return 0;
+
+		for (cp = of_prop_next_string(prop, NULL); cp;
+				cp = of_prop_next_string(prop, cp), index++) {
 			if (of_compat_cmp(cp, compat, strlen(compat)) == 0) {
 				score = INT_MAX/2 - (index << 2);
 				break;
 			}
-			index++;
 		}
 		if (!score)
 			return 0;

Thanks,
Kevin

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help