[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.10.1609201932362.2914@hadrien>
Date: Tue, 20 Sep 2016 19:32:52 +0200 (CEST)
From: Julia Lawall <julia.lawall@...6.fr>
To: Stephen Boyd <sboyd@...eaurora.org>
cc: mturquette@...libre.com, linux-clk@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: question about clk_hw_register_fixed_factor
On Tue, 20 Sep 2016, Stephen Boyd wrote:
> On 09/20, Julia Lawall wrote:
> > Hello,
> >
> > The function clk_hw_register_fixed_factor from
> > drivers/clk/clk-fixed-factor.c contains:
> >
> > struct clk_init_data init;
> > ...
> > fix->hw.init = &init;
> > ...
> > hw = &fix->hw;
> > ...
> > return hw;
> >
> > It looks like hw would then contain a dangling pointer, to init. Should
> > this be nulled out, or does it not matter because it is certain that no
> > one will look at it anyway? Or did I miss a null assignment elsewhere?
> >
>
> Yes this is a common pattern in clk drivers. The init structure
> is not used after clk_register() (or its variants) is called, so
> there will typically be a dangling pointer in clk_hw to the
> clk_init_data structure. Sometimes that structure is allocated on
> the stack, which leads to other problems like people forgetting
> to initialize all the members. Usually they forgot to set flags
> to something and then clk framework does very odd things. We
> could null out the init pointer if we really cared, but so far
> this hasn't been a problem.
OK, thanks for the clarification.
julia
Powered by blists - more mailing lists