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 |
[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
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 --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; }