Since clock parents lookup table for clocks with multiple parent clocks is always allocated during clock registration, remove similar allocations from __clk_init_parent() and clk_fetch_parent_index().
The change also corrects a pointer type of a single lookup table entry on calculation of the lookup table size. Signed-off-by: Vladimir Zapolskiy <v...@mleia.com> --- drivers/clk/clk.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 2fb0dae..f8872f9 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -1067,13 +1067,6 @@ static int clk_fetch_parent_index(struct clk_core *core, { int i; - if (!core->parents) { - core->parents = kcalloc(core->num_parents, - sizeof(struct clk *), GFP_KERNEL); - if (!core->parents) - return -ENOMEM; - } - /* * find index of new parent clock using cached parent ptrs, * or if not yet cached, use string name comparison and cache @@ -1711,18 +1704,11 @@ static struct clk_core *__clk_init_parent(struct clk_core *core) } /* - * Do our best to cache parent clocks in core->parents. This prevents - * unnecessary and expensive lookups. We don't set core->parent here; - * that is done by the calling function. + * We don't set core->parent here; that is done by the calling function. */ index = core->ops->get_parent(core->hw); - if (!core->parents) - core->parents = - kcalloc(core->num_parents, sizeof(struct clk *), - GFP_KERNEL); - ret = clk_core_get_parent_by_index(core, index); out: @@ -2374,8 +2360,8 @@ static int __clk_init(struct device *dev, struct clk *clk_user) * look-ups of clk's possible parents. */ if (core->num_parents > 1) { - core->parents = kcalloc(core->num_parents, sizeof(struct clk *), - GFP_KERNEL); + core->parents = kcalloc(core->num_parents, + sizeof(struct clk_core *), GFP_KERNEL); if (!core->parents) { ret = -ENOMEM; goto out; -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-clk" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html