| Message ID | e3a8b277773f46eb200f3c4bac98ee380f3a24bc.1787239813.git.geert+renesas@glider.be |
|---|---|
| State | New |
| Headers | show |
| Series | clk: Make sure clk_init_data is fully initialized (part two) | expand |
Hi Geert, Le vendredi 21 août 2026 à 10:53 +0200, Geert Uytterhoeven a écrit : > The clk_init_data structure contains several mutually-exclusive > members > for different methods to specify the possible parents of a clock, > prompting drivers to initialize only the members they need. However, > not initializing all members may cause subtle issues, which are only > exposed when CONFIG_INIT_STACK_ALL_PATTERN or CONFIG_INIT_STACK_NONE > is > enabled. > > Make sure all members are fully initialized, to avoid such bugs, and > to > prevent future breakage when converting drivers to a different method > for specifying the parents. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Paul Cercueil <paul@crapouillou.net> Cheers, -Paul > --- > Compile-tested only. > --- > drivers/clk/ingenic/cgu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/clk/ingenic/cgu.c b/drivers/clk/ingenic/cgu.c > index 41e4c69131bd6ec7..ad223aa20e8db5a5 100644 > --- a/drivers/clk/ingenic/cgu.c > +++ b/drivers/clk/ingenic/cgu.c > @@ -644,8 +644,8 @@ static const struct clk_ops ingenic_clk_ops = { > static int ingenic_register_clock(struct ingenic_cgu *cgu, unsigned > idx) > { > const struct ingenic_cgu_clk_info *clk_info = &cgu- > >clock_info[idx]; > - struct clk_init_data clk_init; > struct ingenic_clk *ingenic_clk = NULL; > + struct clk_init_data clk_init = {}; > struct clk *clk, *parent; > const char *parent_names[4]; > unsigned caps, i, num_possible;
diff --git a/drivers/clk/ingenic/cgu.c b/drivers/clk/ingenic/cgu.c index 41e4c69131bd6ec7..ad223aa20e8db5a5 100644 --- a/drivers/clk/ingenic/cgu.c +++ b/drivers/clk/ingenic/cgu.c @@ -644,8 +644,8 @@ static const struct clk_ops ingenic_clk_ops = { static int ingenic_register_clock(struct ingenic_cgu *cgu, unsigned idx) { const struct ingenic_cgu_clk_info *clk_info = &cgu->clock_info[idx]; - struct clk_init_data clk_init; struct ingenic_clk *ingenic_clk = NULL; + struct clk_init_data clk_init = {}; struct clk *clk, *parent; const char *parent_names[4]; unsigned caps, i, num_possible;
The clk_init_data structure contains several mutually-exclusive members for different methods to specify the possible parents of a clock, prompting drivers to initialize only the members they need. However, not initializing all members may cause subtle issues, which are only exposed when CONFIG_INIT_STACK_ALL_PATTERN or CONFIG_INIT_STACK_NONE is enabled. Make sure all members are fully initialized, to avoid such bugs, and to prevent future breakage when converting drivers to a different method for specifying the parents. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> --- Compile-tested only. --- drivers/clk/ingenic/cgu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)