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

From: Kevin Hao
Date: Thu Feb 20 2014 - 05:13:37 EST


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

Attachment: pgpSzauJygv5E.pgp
Description: PGP signature