2024-04-01 10:39:01

by Aleksandr Aprelkov

[permalink] [raw]
Subject: [PATCH] clk: s2mps11: Check of_clk_add_hw_provider() result

There is no check if error occurs in clock provider registration.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: b228fad50c00 ("clk: s2mps11: Migrate to clk_hw based OF and registration APIs")
Signed-off-by: Aleksandr Aprelkov <[email protected]>
---
drivers/clk/clk-s2mps11.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
index 38c456540d1b..f9ce413b6c02 100644
--- a/drivers/clk/clk-s2mps11.c
+++ b/drivers/clk/clk-s2mps11.c
@@ -187,8 +187,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
}

clk_data->num = S2MPS11_CLKS_NUM;
- of_clk_add_hw_provider(s2mps11_clks->clk_np, of_clk_hw_onecell_get,
+ ret = of_clk_add_hw_provider(s2mps11_clks->clk_np, of_clk_hw_onecell_get,
clk_data);
+ if (ret < 0)
+ goto err_reg;

platform_set_drvdata(pdev, s2mps11_clks);

--
2.34.1



2024-04-01 12:40:29

by Christophe JAILLET

[permalink] [raw]
Subject: Re: [PATCH] clk: s2mps11: Check of_clk_add_hw_provider() result

Le 01/04/2024 à 12:38, Aleksandr Aprelkov a écrit :
> There is no check if error occurs in clock provider registration.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Fixes: b228fad50c00 ("clk: s2mps11: Migrate to clk_hw based OF and registration APIs")
> Signed-off-by: Aleksandr Aprelkov <[email protected]>
> ---
> drivers/clk/clk-s2mps11.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
> index 38c456540d1b..f9ce413b6c02 100644
> --- a/drivers/clk/clk-s2mps11.c
> +++ b/drivers/clk/clk-s2mps11.c
> @@ -187,8 +187,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
> }
>
> clk_data->num = S2MPS11_CLKS_NUM;
> - of_clk_add_hw_provider(s2mps11_clks->clk_np, of_clk_hw_onecell_get,
> + ret = of_clk_add_hw_provider(s2mps11_clks->clk_np, of_clk_hw_onecell_get,
> clk_data);

Hi,

Nit: "clk_data);" is wrongly aligned now.

CJ

> + if (ret < 0)
> + goto err_reg;
>
> platform_set_drvdata(pdev, s2mps11_clks);
>


2024-04-01 14:40:23

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] clk: s2mps11: Check of_clk_add_hw_provider() result

On 01/04/2024 12:38, Aleksandr Aprelkov wrote:
> There is no check if error occurs in clock provider registration.

No, instead explain why there should be a check.

>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Fixes: b228fad50c00 ("clk: s2mps11: Migrate to clk_hw based OF and registration APIs")
> Signed-off-by: Aleksandr Aprelkov <[email protected]>
> ---
> drivers/clk/clk-s2mps11.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
> index 38c456540d1b..f9ce413b6c02 100644
> --- a/drivers/clk/clk-s2mps11.c
> +++ b/drivers/clk/clk-s2mps11.c
> @@ -187,8 +187,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
> }
>
> clk_data->num = S2MPS11_CLKS_NUM;
> - of_clk_add_hw_provider(s2mps11_clks->clk_np, of_clk_hw_onecell_get,
> + ret = of_clk_add_hw_provider(s2mps11_clks->clk_np, of_clk_hw_onecell_get,
> clk_data);
> + if (ret < 0)
> + goto err_reg;

I really do not understand why you are doing this. This SVACE in the
past was creating really fake reports and we were complaining multiple
times that you should fix your tool.

NAK for such explanation.

Best regards,
Krzysztof