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

