Re: [PATCH treewide 0/5] clk: Make sure clk_init_data is fully initialized (part 1)
Geert Uytterhoeven <[email protected]>
| Newsgroups | org.kernel.vger.linux-spi,org.infradead.lists.linux-amlogic,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-clk,org.kernel.vger.linux-hwmon,org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel,org.kernel.vger.linux-omap |
|---|---|
| Message-ID | <CAMuHMdXaxV9K8=yQ3KU-V2dV-eFqFqMR9WDyt2RVKADLS51Dcg@mail.gmail.com> |
On Wed, 19 Aug 2026 at 21:05, Geert Uytterhoeven <[email protected]> wrote: > The clk_init_data structure contains three mutually-exclusive members > for different methods to specify the possible parents of a clock, > prompting drivers to initialize only the members they need. When commit > fc0c209c147f35ed ("clk: Allow parents to be specified without string > names") added the last two methods, this was done in a > backwards-compatible way, using a priority-based scheme: > - .name, .ops, .num_parents, and .flags must always be initialized, > - if .num_parents is non-zero, .parent_names must be initialized, > - if .parent_names is NULL, .parent_data must be initialized, > - if .parent_data is NULL, .parent_hws must be initialized > and valid. > > 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. > > Hence this series makes sure all members are fully initialized, to fix > such bugs, and to avoid future breakage when converting drivers to a > different method for specifying the parents. > > This (small) series is part 1, and fixes all cases that I identified to > be real bugs: > - The first patch fixes a crash I saw on BeagleBone Black, > - The other patches are only compile-tested. > All patches in this series can be applied independently. > > Part 2 will be much larger (touching 185 files), and will fix the > remaining cases that are currently harmless. FTR, I split part two in 13 subparts, per subsystem: - "[PATCH 0/2] ARM/soc: Make sure clk_init_data is fully initialized" https://lore.kernel.org/[email protected]> - "[PATCH 0/3] ASoC: Make sure clk_init_data is fully initialized" https://lore.kernel.org/[email protected]> - "[PATCH 00/45] clk: Make sure clk_init_data is fully initialized (part two)" https://lore.kernel.org/[email protected]> - "[PATCH 0/2] drm: Make sure clk_init_data is fully initialized" https://lore.kernel.org/[email protected]> - "[PATCH] i2c: bcm2835: Make sure clk_init_data is fully initialized" https://lore.kernel.org/9f82f37e6d6c069cd44326bcd5e5a2a8069a13a9.1787239980.git.geert+renesas@glider.be> - "[PATCH 0/2] iio: Make sure clk_init_data is fully initialized" https://lore.kernel.org/[email protected]> - "[PATCH 0/3] media: Make sure clk_init_data is fully initialized" https://lore.kernel.org/[email protected]> - "[PATCH] MIPS: Alchemy: clock: Make sure clk_init_data is fully" https://lore.kernel.org/3610b51df642abb1fbb39f5bd93fddea43f8f164.1787240060.git.geert+renesas@glider.be> - "[PATCH 0/2] mmc: Make sure clk_init_data is fully initialized" https://lore.kernel.org/[email protected]> - "[PATCH net-next 0/3] net: Make sure clk_init_data is fully initialized" https://lore.kernel.org/[email protected]> - "[PATCH] peci: controller: aspeed: Make sure clk_init_data is fully" https://lore.kernel.org/48aa77c45e109f78ccd806bc3b7bf380c5bc5e71.1787240145.git.geert+renesas@glider.be> - "[PATCH 0/2] phy: Make sure clk_init_data is fully initialized" https://lore.kernel.org/[email protected]> - "[PATCH 0/5] rtc: Make sure clk_init_data is fully initialized" https://lore.kernel.org/[email protected]> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds