The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH v2] iio: frequency: adf4377: Fully initialize clk_init_data and clk_parent_data
@ 2026-08-20  9:19 Geert Uytterhoeven
  2026-08-20 10:09 ` Joshua Crofts
  2026-08-20 15:09 ` Brian Masney
  0 siblings, 2 replies; 3+ messages in thread
From: Geert Uytterhoeven @ 2026-08-20  9:19 UTC (permalink / raw)
  To: Nuno Sá, Michael Hennerich, Antoniu Miclaus,
	Jonathan Cameron, David Lechner, Andy Shevchenko, Stephen Boyd,
	Brian Masney, Jerome Brunet
  Cc: linux, linux-iio, linux-clk, linux-kernel, Geert Uytterhoeven

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.

adf4377_clk_register() fills in init.parent_data, and assumes that
init.parent_names is NULL.  However, the latter is uninitialized, and
thus may cause a crash.

Similarly, adf4377_clk_register() fills in only parent_data.fw_name,
leaving other members of the clk_parent_data structure uninitialized.

Make 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.

Fixes: 60e5448ddbec2dc2 ("iio: frequency: adf4377: add clk provider support")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
Compile-tested only.

v2:
  - Extract from series "[PATCH treewide 0/5] clk: Make sure
    clk_init_data is fully initialized (part 1)"
    (https://lore.kernel.org/cover.1787165329.git.geert+renesas@glider.be),
  - Fully initialize clk_parent_data too, as pointed out by Sashiko.
---
 drivers/iio/frequency/adf4377.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/frequency/adf4377.c b/drivers/iio/frequency/adf4377.c
index 4dd19a9aa9943c57..b8c31665857c5201 100644
--- a/drivers/iio/frequency/adf4377.c
+++ b/drivers/iio/frequency/adf4377.c
@@ -988,10 +988,10 @@ static const struct clk_ops adf4377_clk_ops = {
 
 static int adf4377_clk_register(struct adf4377_state *st)
 {
+	struct clk_parent_data parent_data = {};
 	struct spi_device *spi = st->spi;
 	struct device *dev = &spi->dev;
-	struct clk_init_data init;
-	struct clk_parent_data parent_data;
+	struct clk_init_data init = {};
 	int ret;
 
 	if (!device_property_present(dev, "#clock-cells"))
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-08-20 15:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-20  9:19 [PATCH v2] iio: frequency: adf4377: Fully initialize clk_init_data and clk_parent_data Geert Uytterhoeven
2026-08-20 10:09 ` Joshua Crofts
2026-08-20 15:09 ` Brian Masney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox