[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <175037940843.4372.15491046245744789361@lazor>
Date: Thu, 19 Jun 2025 17:30:08 -0700
From: Stephen Boyd <sboyd@...nel.org>
To: Cristian Marussi <cristian.marussi@....com>, Michael Turquette <mturquette@...libre.com>, Peng Fan <peng.fan@....com>, Sascha Hauer <s.hauer@...gutronix.de>, Sudeep Holla <sudeep.holla@....com>
Cc: arm-scmi@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, linux-clk@...r.kernel.org, linux-kernel@...r.kernel.org, Sascha Hauer <s.hauer@...gutronix.de>
Subject: Re: [PATCH v3] clk: scmi: Handle case where child clocks are initialized before their parents
Quoting Sascha Hauer (2025-06-12 05:56:57)
> The SCMI clock driver currently assumes that parent clocks are always
> initialized before their children. However, this assumption can fail if
> a child clock is encountered before its parent during probe.
>
> This leads to an issue during initialization of the parent_data array:
>
> sclk->parent_data[i].hw = hws[sclk->info->parents[i]];
>
> If the parent clock's hardware structure has not been initialized yet,
> this assignment results in invalid data.
>
> To resolve this, allocate all struct scmi_clk instances as a contiguous
> array at the beginning of the probe and populate the hws[] array
> upfront. This ensures that any parent referenced later is already
> initialized, regardless of the order in which clocks are processed.
>
> Note that we can no longer free individual scmi_clk instances if
> scmi_clk_ops_init() fails which shouldn't be a problem if the SCMI
> platform has proper per-agent clock discovery.
>
> Fixes: 65a8a3dd3b95f ("clk: scmi: Add support for clock {set,get}_parent")
> Reviewed-by: peng.fan@....com
> Reviewed-by: Cristian Marussi <cristian.marussi@....com>
> Reviewed-by: Sudeep Holla <sudeep.holla@....com>
> Signed-off-by: Sascha Hauer <s.hauer@...gutronix.de>
> ---
Applied to clk-fixes
Powered by blists - more mailing lists