diff mbox series

[v2] cpufreq: amd-pstate: fix the memory to free after epp exist

Message ID PUZPR01MB51206C1D9F3E2005B5BECCBA92E32@PUZPR01MB5120.apcprd01.prod.exchangelabs.com (mailing list archive)
State Handled Elsewhere, archived
Headers show
Series [v2] cpufreq: amd-pstate: fix the memory to free after epp exist | expand

Commit Message

mazhida May 14, 2024, 6:43 a.m. UTC
From: andypma <andypma.tencent.com>

the cpudata memory from kzmalloc in epp init function is
not free after epp exist, so we should free it.

Signed-off-by: andypma <andypma@tencent.com>

Changes since v1:
	check whether it is empty before releasing.
	set driver_data is NULL after free.
---
 drivers/cpufreq/amd-pstate.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Yuan, Perry May 14, 2024, 8:24 a.m. UTC | #1
[AMD Official Use Only - AMD Internal Distribution Only]

> -----Original Message-----
> From: zhida312@outlook.com <zhida312@outlook.com>
> Sent: Tuesday, May 14, 2024 2:43 PM
> To: rafael@kernel.org; viresh.kumar@linaro.org
> Cc: andypma <andypma@tencent.com>; Huang, Ray
> <Ray.Huang@amd.com>; Shenoy, Gautham Ranjal
> <gautham.shenoy@amd.com>; Limonciello, Mario
> <Mario.Limonciello@amd.com>; Yuan, Perry <Perry.Yuan@amd.com>; linux-
> pm@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: [v2] cpufreq: amd-pstate: fix the memory to free after epp exist
>
> From: andypma <andypma.tencent.com>
>
> the cpudata memory from kzmalloc in epp init function is not free after epp
> exist, so we should free it.
>
> Signed-off-by: andypma <andypma@tencent.com>

Looks like you need to fix the format of the `Signed-off-by` line in your commit, you need to ensure that it follows the correct format of including your full name and email address. Here's how you can fix it:

Signed-off-by: Your Full Name <your_email@example.com>

So maybe you want to change like this.
Signed-off-by: Andy Pma <andypma@tencent.com>

Perry.

>
> Changes since v1:
>       check whether it is empty before releasing.
>       set driver_data is NULL after free.
> ---
>  drivers/cpufreq/amd-pstate.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> index 6a342b0c0140..e100c5b6c9b2 100644
> --- a/drivers/cpufreq/amd-pstate.c
> +++ b/drivers/cpufreq/amd-pstate.c
> @@ -1441,6 +1441,13 @@ static int amd_pstate_epp_cpu_init(struct
> cpufreq_policy *policy)
>
>  static int amd_pstate_epp_cpu_exit(struct cpufreq_policy *policy)  {
> +     struct amd_cpudata *cpudata = policy->driver_data;
> +
> +     if(cpudata) {
> +             kfree(cpudata);
> +             policy->driver_data = NULL;
> +     }
> +
>       pr_debug("CPU %d exiting\n", policy->cpu);
>       return 0;
>  }
> --
> 2.33.0
Mario Limonciello May 14, 2024, 8:30 a.m. UTC | #2
On 5/14/2024 3:24 AM, Yuan, Perry wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
> 
>> -----Original Message-----
>> From: zhida312@outlook.com <zhida312@outlook.com>
>> Sent: Tuesday, May 14, 2024 2:43 PM
>> To: rafael@kernel.org; viresh.kumar@linaro.org
>> Cc: andypma <andypma@tencent.com>; Huang, Ray
>> <Ray.Huang@amd.com>; Shenoy, Gautham Ranjal
>> <gautham.shenoy@amd.com>; Limonciello, Mario
>> <Mario.Limonciello@amd.com>; Yuan, Perry <Perry.Yuan@amd.com>; linux-
>> pm@vger.kernel.org; linux-kernel@vger.kernel.org
>> Subject: [v2] cpufreq: amd-pstate: fix the memory to free after epp exist
>>
>> From: andypma <andypma.tencent.com>
>>
>> the cpudata memory from kzmalloc in epp init function is not free after epp
>> exist, so we should free it.
>>
>> Signed-off-by: andypma <andypma@tencent.com>
> 
> Looks like you need to fix the format of the `Signed-off-by` line in your commit, you need to ensure that it follows the correct format of including your full name and email address. Here's how you can fix it:
> 
> Signed-off-by: Your Full Name <your_email@example.com>
> 
> So maybe you want to change like this.
> Signed-off-by: Andy Pma <andypma@tencent.com>
> 
> Perry.
> 
>>
>> Changes since v1:
>>        check whether it is empty before releasing.
>>        set driver_data is NULL after free.
>> ---
>>   drivers/cpufreq/amd-pstate.c | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
>> index 6a342b0c0140..e100c5b6c9b2 100644
>> --- a/drivers/cpufreq/amd-pstate.c
>> +++ b/drivers/cpufreq/amd-pstate.c
>> @@ -1441,6 +1441,13 @@ static int amd_pstate_epp_cpu_init(struct
>> cpufreq_policy *policy)
>>
>>   static int amd_pstate_epp_cpu_exit(struct cpufreq_policy *policy)  {
>> +     struct amd_cpudata *cpudata = policy->driver_data;
>> +
>> +     if(cpudata) {

You want a space after the if

But isn't it safe to call kfree(cpudata) even if cpudata was already NULL?

>> +             kfree(cpudata);
>> +             policy->driver_data = NULL;
>> +     }
>> +
>>        pr_debug("CPU %d exiting\n", policy->cpu);
>>        return 0;
>>   }
>> --
>> 2.33.0
>
diff mbox series

Patch

diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index 6a342b0c0140..e100c5b6c9b2 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -1441,6 +1441,13 @@  static int amd_pstate_epp_cpu_init(struct cpufreq_policy *policy)
 
 static int amd_pstate_epp_cpu_exit(struct cpufreq_policy *policy)
 {
+	struct amd_cpudata *cpudata = policy->driver_data;
+
+	if(cpudata) {
+		kfree(cpudata);
+		policy->driver_data = NULL;
+	}
+
 	pr_debug("CPU %d exiting\n", policy->cpu);
 	return 0;
 }