diff mbox series

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

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

Commit Message

mazhida May 15, 2024, 2:53 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: Peng Ma <andypma@tencent.com>

Changes since v2:
	update Signed-off-by to Peng Ma <andypma@tencent.com>.
	set a space between if and "(".

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 16, 2024, 2:48 a.m. UTC | #1
[AMD Official Use Only - AMD Internal Distribution Only]

Hi Peng,

> -----Original Message-----
> From: zhida312@outlook.com <zhida312@outlook.com>
> Sent: Wednesday, May 15, 2024 10:54 AM
> To: rafael@kernel.org; viresh.kumar@linaro.org
> Cc: Peng Ma <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: [v3] cpufreq: amd-pstate: fix the memory to free after epp exist

The subject need to be update as below. " git format-patch -1 -v 3"

[PATCH v3] 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: Peng Ma <andypma@tencent.com>
>
> Changes since v2:
>       update Signed-off-by to Peng Ma <andypma@tencent.com>.
>       set a space between if and "(".
>
> 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..1b7e82a0ad2e 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.41.0
Limonciello, Mario May 16, 2024, 5:36 a.m. UTC | #2
On 5/15/2024 11:05 PM, Ma ZhiDa wrote:
> Hi Perry,
> 
> Got it. Thanks.
> 
> BR,
> Peng
> ------------------------------------------------------------------------
> *发件人:* Yuan, Perry <Perry.Yuan@amd.com>
> *发送时间:* 2024年5月16日 10:48
> *收件人:* zhida312@outlook.com <zhida312@outlook.com>
> *抄送:* Peng Ma <andypma@tencent.com>; Huang, Ray <Ray.Huang@amd.com>; 
> Shenoy, Gautham Ranjal <gautham.shenoy@amd.com>; Limonciello, Mario 
> <Mario.Limonciello@amd.com>; linux-pm@vger.kernel.org 
> <linux-pm@vger.kernel.org>; linux-kernel@vger.kernel.org 
> <linux-kernel@vger.kernel.org>; viresh.kumar@linaro.org 
> <viresh.kumar@linaro.org>; rafael@kernel.org <rafael@kernel.org>
> *主题:* RE: [v3] cpufreq: amd-pstate: fix the memory to free after epp 
> exist
> [AMD Official Use Only - AMD Internal Distribution Only]
> 
> Hi Peng,
> 
>> -----Original Message-----
>> From: zhida312@outlook.com <zhida312@outlook.com>
>> Sent: Wednesday, May 15, 2024 10:54 AM
>> To: rafael@kernel.org; viresh.kumar@linaro.org
>> Cc: Peng Ma <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: [v3] cpufreq: amd-pstate: fix the memory to free after epp exist
> 
> The subject need to be update as below. " git format-patch -1 -v 3"
> 
> [PATCH v3] 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: Peng Ma <andypma@tencent.com>
>>
>> Changes since v2:
>>       update Signed-off-by to Peng Ma <andypma@tencent.com>.
>>       set a space between if and "(".
>>
>> Changes since v1:
>>       check whether it is empty before releasing.
>>       set driver_data is NULL after free.
If you submit one more change, please add your changelist below cutlist.

IE:

S-o-b <user@name>
---
Changes from v3 to v4:
Foo the bar

>> ---
>>  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..1b7e82a0ad2e 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.41.0
>
diff mbox series

Patch

diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index 6a342b0c0140..1b7e82a0ad2e 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;
 }