Re: [PATCH 1/2] clk: clk_core_get() can also return NULL

From: Stephen Boyd
Date: Thu Dec 09 2021 - 20:16:03 EST


Quoting Stephen Boyd (2021-12-07 20:15:33)
> Nothing stops a clk controller from registering an OF clk provider
> before registering those clks with the clk framework. This is not great
> but we deal with it in the clk framework by refusing to hand out struct
> clk pointers when 'hw->core' is NULL, the indication that clk_register()
> has been called.
>
> Within clk_core_fill_parent_index() we considered this case when a
> clk_hw pointer is referenced directly by filling in the parent cache
> with an -EPROBE_DEFER pointer when the core pointer is NULL. When we
> lookup a parent with clk_core_get() we don't care about the return value
> being NULL though, because that was considered largely impossible, but
> it's been proven now that it can be NULL if two clk providers are
> probing in parallel and the parent provider has been registered before
> the clk has. Let's check for NULL here as well and treat it the same as
> direct clk_hw references.
>
> Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxx>
> ---

Applied to clk-next