2023-05-18 08:49:52

by Sukrut Bellary

[permalink] [raw]
Subject: [PATCH5b51a54ae2fa1cc8459b68a28b3c8ca7b7203994] PM / devfreq: mtk-cci: Fix variable deferencing before NULL check

smatch warning:
drivers/devfreq/mtk-cci-devfreq.c:135 mtk_ccifreq_target()
warn: variable dereferenced before check 'drv' (see line 130)

This is based on static analysis only. Compilation tested.

Signed-off-by: Sukrut Bellary <[email protected]>
---
drivers/devfreq/mtk-cci-devfreq.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/devfreq/mtk-cci-devfreq.c b/drivers/devfreq/mtk-cci-devfreq.c
index e5458ada5197..6354622eda65 100644
--- a/drivers/devfreq/mtk-cci-devfreq.c
+++ b/drivers/devfreq/mtk-cci-devfreq.c
@@ -127,7 +127,7 @@ static int mtk_ccifreq_target(struct device *dev, unsigned long *freq,
u32 flags)
{
struct mtk_ccifreq_drv *drv = dev_get_drvdata(dev);
- struct clk *cci_pll = clk_get_parent(drv->cci_clk);
+ struct clk *cci_pll;
struct dev_pm_opp *opp;
unsigned long opp_rate;
int voltage, pre_voltage, inter_voltage, target_voltage, ret;
@@ -139,6 +139,7 @@ static int mtk_ccifreq_target(struct device *dev, unsigned long *freq,
return 0;

inter_voltage = drv->inter_voltage;
+ cci_pll = clk_get_parent(drv->cci_clk);

opp_rate = *freq;
opp = devfreq_recommended_opp(dev, &opp_rate, 1);
--
2.34.1



2023-05-29 14:50:42

by Chanwoo Choi

[permalink] [raw]
Subject: Re: [PATCH5b51a54ae2fa1cc8459b68a28b3c8ca7b7203994] PM / devfreq: mtk-cci: Fix variable deferencing before NULL check

On 23. 5. 18. 17:40, Sukrut Bellary wrote:
> smatch warning:
> drivers/devfreq/mtk-cci-devfreq.c:135 mtk_ccifreq_target()
> warn: variable dereferenced before check 'drv' (see line 130)
>
> This is based on static analysis only. Compilation tested.
>
> Signed-off-by: Sukrut Bellary <[email protected]>
> ---
> drivers/devfreq/mtk-cci-devfreq.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/devfreq/mtk-cci-devfreq.c b/drivers/devfreq/mtk-cci-devfreq.c
> index e5458ada5197..6354622eda65 100644
> --- a/drivers/devfreq/mtk-cci-devfreq.c
> +++ b/drivers/devfreq/mtk-cci-devfreq.c
> @@ -127,7 +127,7 @@ static int mtk_ccifreq_target(struct device *dev, unsigned long *freq,
> u32 flags)
> {
> struct mtk_ccifreq_drv *drv = dev_get_drvdata(dev);
> - struct clk *cci_pll = clk_get_parent(drv->cci_clk);
> + struct clk *cci_pll;
> struct dev_pm_opp *opp;
> unsigned long opp_rate;
> int voltage, pre_voltage, inter_voltage, target_voltage, ret;
> @@ -139,6 +139,7 @@ static int mtk_ccifreq_target(struct device *dev, unsigned long *freq,
> return 0;
>
> inter_voltage = drv->inter_voltage;
> + cci_pll = clk_get_parent(drv->cci_clk);
>
> opp_rate = *freq;
> opp = devfreq_recommended_opp(dev, &opp_rate, 1);

Applied it. Thanks.

--
Best Regards,
Samsung Electronics
Chanwoo Choi