2022-11-08 07:16:20

by Chen Hui

[permalink] [raw]
Subject: [PATCH] cpufreq: qcom-hw: Fix memory leak in qcom_cpufreq_hw_read_lut()

If "cpu_dev" fails to get opp table in qcom_cpufreq_hw_read_lut(),
the program will return, resulting in "table" resource is not released.

Fixes: 51c843cf77bb ("cpufreq: qcom: Update the bandwidth levels on frequency change")
Signed-off-by: Chen Hui <[email protected]>
---
drivers/cpufreq/qcom-cpufreq-hw.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c
index 833589bc95e4..d15097549e8c 100644
--- a/drivers/cpufreq/qcom-cpufreq-hw.c
+++ b/drivers/cpufreq/qcom-cpufreq-hw.c
@@ -193,6 +193,7 @@ static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev,
}
} else if (ret != -ENODEV) {
dev_err(cpu_dev, "Invalid opp table in device tree\n");
+ kfree(table);
return ret;
} else {
policy->fast_switch_possible = true;
--
2.17.1



2022-11-08 10:26:24

by Sibi Sankar

[permalink] [raw]
Subject: Re: [PATCH] cpufreq: qcom-hw: Fix memory leak in qcom_cpufreq_hw_read_lut()

Hey Chen,

Thanks for the patch.

On 11/8/22 12:53, Chen Hui wrote:
> If "cpu_dev" fails to get opp table in qcom_cpufreq_hw_read_lut(),
> the program will return, resulting in "table" resource is not released.
>
> Fixes: 51c843cf77bb ("cpufreq: qcom: Update the bandwidth levels on frequency change")

Reviewed-by: Sibi Sankar <[email protected]>

> Signed-off-by: Chen Hui <[email protected]>
> ---
> drivers/cpufreq/qcom-cpufreq-hw.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c
> index 833589bc95e4..d15097549e8c 100644
> --- a/drivers/cpufreq/qcom-cpufreq-hw.c
> +++ b/drivers/cpufreq/qcom-cpufreq-hw.c
> @@ -193,6 +193,7 @@ static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev,
> }
> } else if (ret != -ENODEV) {
> dev_err(cpu_dev, "Invalid opp table in device tree\n");
> + kfree(table);
> return ret;
> } else {
> policy->fast_switch_possible = true;

2022-11-09 06:52:53

by Viresh Kumar

[permalink] [raw]
Subject: Re: [PATCH] cpufreq: qcom-hw: Fix memory leak in qcom_cpufreq_hw_read_lut()

On 08-11-22, 15:23, Chen Hui wrote:
> If "cpu_dev" fails to get opp table in qcom_cpufreq_hw_read_lut(),
> the program will return, resulting in "table" resource is not released.
>
> Fixes: 51c843cf77bb ("cpufreq: qcom: Update the bandwidth levels on frequency change")
> Signed-off-by: Chen Hui <[email protected]>
> ---
> drivers/cpufreq/qcom-cpufreq-hw.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c
> index 833589bc95e4..d15097549e8c 100644
> --- a/drivers/cpufreq/qcom-cpufreq-hw.c
> +++ b/drivers/cpufreq/qcom-cpufreq-hw.c
> @@ -193,6 +193,7 @@ static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev,
> }
> } else if (ret != -ENODEV) {
> dev_err(cpu_dev, "Invalid opp table in device tree\n");
> + kfree(table);
> return ret;
> } else {
> policy->fast_switch_possible = true;

Applied. Thanks.

--
viresh