Re: [PATCH 1/9] clk: actions: Don't reference clk_init_data after registration

From: Manivannan Sadhasivam
Date: Fri Aug 16 2019 - 07:22:30 EST


On Wed, Jul 31, 2019 at 12:35:09PM -0700, Stephen Boyd wrote:
> A future patch is going to change semantics of clk_register() so that
> clk_hw::init is guaranteed to be NULL after a clk is registered. Avoid
> referencing this member here so that we don't run into NULL pointer
> exceptions.
>
> Cc: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>
> Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxx>
> ---
>
> Please ack so I can take this through clk tree
>
> drivers/clk/actions/owl-common.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/clk/actions/owl-common.c b/drivers/clk/actions/owl-common.c
> index 32dd29e0a37e..71b683c4e643 100644
> --- a/drivers/clk/actions/owl-common.c
> +++ b/drivers/clk/actions/owl-common.c
> @@ -68,6 +68,7 @@ int owl_clk_probe(struct device *dev, struct clk_hw_onecell_data *hw_clks)
> struct clk_hw *hw;
>
> for (i = 0; i < hw_clks->num; i++) {
> + const char *name = hw->init->name;
>

This should come after below statement and hence the warning is generated
in linux-next. Sorry for missing!

Thanks,
Mani

> hw = hw_clks->hws[i];
>
> @@ -77,7 +78,7 @@ int owl_clk_probe(struct device *dev, struct clk_hw_onecell_data *hw_clks)
> ret = devm_clk_hw_register(dev, hw);
> if (ret) {
> dev_err(dev, "Couldn't register clock %d - %s\n",
> - i, hw->init->name);
> + i, name);
> return ret;
> }
> }
> --
> Sent by a computer through tubes
>