diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index f191bf0..80e5b6c 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -735,7 +735,6 @@ void __init early_init_devtree(void *params)
  */
 struct device_node *of_find_next_cache_node(struct device_node *np)
 {
-	struct device_node *child;
 	const phandle *handle;
 
 	handle = of_get_property(np, "l2-cache", NULL);
@@ -749,9 +748,7 @@ struct device_node *of_find_next_cache_node(struct device_node *np)
 	 * beneath CPU nodes.
 	 */
 	if (!strcmp(np->type, "cpu"))
-		for_each_child_of_node(np, child)
-			if (!strcmp(child->type, "cache"))
-				return child;
+		return of_get_child_by_name(np, "cache");
 
 	return NULL;
 }
