From: Rob Herring <[email protected]>

__clk_reparent can remove orphans, so the list iterator needs to be the
safe from removal version.

Signed-off-by: Rob Herring <[email protected]>
---
 drivers/clk/clk.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index c7c3bc5..802eda4 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -1172,7 +1172,7 @@ void __clk_init(struct device *dev, struct clk *clk)
 {
        int i;
        struct clk *orphan;
-       struct hlist_node *tmp;
+       struct hlist_node *tmp, *tmp2;
 
        if (!clk)
                return;
@@ -1246,7 +1246,7 @@ void __clk_init(struct device *dev, struct clk *clk)
         * walk the list of orphan clocks and reparent any that are children of
         * this clock
         */
-       hlist_for_each_entry(orphan, tmp, &clk_orphan_list, child_node)
+       hlist_for_each_entry_safe(orphan, tmp, tmp2, &clk_orphan_list, 
child_node)
                __clk_reparent(orphan, __clk_init_parent(orphan));
 
        /*
-- 
1.7.5.4

_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to