rtc: microcrystal: Make sure clk_init_data is fully initialized
authorGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 21 Aug 2026 10:09:06 +0000 (12:09 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Sun, 23 Aug 2026 19:49:51 +0000 (21:49 +0200)
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>
Link: https://patch.msgid.link/6e7b5258ff73e93fe23dd83cf56f806ee60fa7a9.1787241693.git.geert+renesas@glider.be
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-rv3028.c
drivers/rtc/rtc-rv3032.c

index d96f6bb..d25e33d 100644 (file)
@@ -816,7 +816,7 @@ static int rv3028_clkout_register_clk(struct rv3028_data *rv3028,
 {
        int ret;
        struct clk *clk;
-       struct clk_init_data init;
+       struct clk_init_data init = {};
        struct device_node *node = client->dev.of_node;
 
        ret = regmap_update_bits(rv3028->regmap, RV3028_STATUS,
index 6bafdec..687faae 100644 (file)
@@ -752,7 +752,7 @@ static int rv3032_clkout_register_clk(struct rv3032_data *rv3032,
 {
        int ret;
        struct clk *clk;
-       struct clk_init_data init;
+       struct clk_init_data init = {};
        struct device_node *node = client->dev.of_node;
 
        ret = regmap_update_bits(rv3032->regmap, RV3032_TLSB, RV3032_TLSB_CLKF, 0);