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

From: Limonciello, Mario
Date: Tue May 14 2024 - 04:31:01 EST




On 5/14/2024 3:24 AM, Yuan, Perry wrote:
[AMD Official Use Only - AMD Internal Distribution Only]

-----Original Message-----
From: zhida312@xxxxxxxxxxx <zhida312@xxxxxxxxxxx>
Sent: Tuesday, May 14, 2024 2:43 PM
To: rafael@xxxxxxxxxx; viresh.kumar@xxxxxxxxxx
Cc: andypma <andypma@xxxxxxxxxxx>; Huang, Ray
<Ray.Huang@xxxxxxx>; Shenoy, Gautham Ranjal
<gautham.shenoy@xxxxxxx>; Limonciello, Mario
<Mario.Limonciello@xxxxxxx>; Yuan, Perry <Perry.Yuan@xxxxxxx>; linux-
pm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
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@xxxxxxxxxxx>

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@xxxxxxxxxxx>

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

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