Re: [PATCH v3 01/19] clk: composite: Add unregister function

From: Stephen Boyd
Date: Fri Apr 15 2016 - 18:29:05 EST


On 03/23, Maxime Ripard wrote:
> The composite clock didn't have any unregistration function, which forced
> us to use clk_unregister directly on it.
>
> While it was already not great from an API point of view, it also meant
> that we were leaking the clk_composite structure allocated in
> clk_register_composite.
>
> Add a clk_unregister_composite function to fix this.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
> ---

I'm currently attempting to change the way clks are registered so
that we don't return clk pointers from clk_register and have
users add OF clk providers that return clk_hw pointers instead of
clk pointers. Just a note, that this whole thing should be
deleted in the next cycle if I can convert everything!

> drivers/clk/clk-composite.c | 15 +++++++++++++++
> include/linux/clk-provider.h | 1 +
> 2 files changed, 16 insertions(+)
>
> diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c
> index 1f903e1f86a2..b0f3b84ebd13 100644
> --- a/drivers/clk/clk-composite.c
> +++ b/drivers/clk/clk-composite.c
> @@ -286,3 +286,18 @@ err:
> kfree(composite);
> return clk;
> }
> +
> +void clk_unregister_composite(struct clk *clk)
> +{
> + struct clk_composite *composite;
> + struct clk_hw *hw;
> +
> + hw = __clk_get_hw(clk);
> + if (!hw)
> + return;
> +
> + composite = to_clk_composite(hw);
> +
> + clk_unregister(clk);
> + kfree(composite);
> +}

EXPORT_SYMBOL_GPL?

Do I need to pick this up?

--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project