diff options
-rw-r--r-- | drivers/of/base.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/of/base.c b/drivers/of/base.c index 838f530f85..22077fa397 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -2306,9 +2306,17 @@ struct device_node *of_find_node_by_reproducible_name(struct device_node *from, { struct device_node *np; - of_tree_for_each_node_from(np, from) - if (!of_node_cmp(of_get_reproducible_name(np), name)) + of_tree_for_each_node_from(np, from) { + char *rep = of_get_reproducible_name(np); + int res; + + res = of_node_cmp(rep, name); + + free(rep); + + if (!res) return np; + } return NULL; } |