X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=drivers%2Fclk%2Fclk.c;h=b005f666e3a1a7166c7d348ab55405b1c7e5a407;hb=ab5c342992cac7d1ddaf8a75a4dcab0d13718022;hp=43e2c3ad6c3111ae6d0a83f027b75344c087f5f2;hpb=b9ffce9ae14fa6068a7c8c3ce2350ee3a8c1787b;p=cascardo%2Flinux.git diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 43e2c3ad6c31..b005f666e3a1 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -1685,7 +1685,7 @@ static struct clk_core *__clk_init_parent(struct clk_core *core) "%s: multi-parent clocks must implement .get_parent\n", __func__); goto out; - }; + } /* * Do our best to cache parent clocks in core->parents. This prevents @@ -2437,7 +2437,8 @@ static int __clk_init(struct device *dev, struct clk *clk_user) hlist_for_each_entry_safe(orphan, tmp2, &clk_orphan_list, child_node) { if (orphan->num_parents && orphan->ops->get_parent) { i = orphan->ops->get_parent(orphan->hw); - if (!strcmp(core->name, orphan->parent_names[i])) + if (i >= 0 && i < orphan->num_parents && + !strcmp(core->name, orphan->parent_names[i])) clk_core_reparent(orphan, core); continue; }