Hi, On Fri, Apr 15, 2016 at 03:28:56PM -0700, Stephen Boyd wrote: > 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! Ok. > > > 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? The register function is not registered, so I don't think that's necessary. > Do I need to pick this up? I have a bunch of other clock patches that need this, so I guess it would be easier if applied it directly with your acked-by, or if you could apply it and give a stable branch I can base my future PR on. Thanks! Maxime -- Maxime Ripard, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Attachment:
signature.asc
Description: Digital signature