Message ID | PUZPR01MB5120A03DFF0EA1CE70E7334E92ED2@PUZPR01MB5120.apcprd01.prod.exchangelabs.com (mailing list archive) |
---|---|
State | In Next |
Delegated to: | Rafael Wysocki |
Headers | show |
Series | [v4] cpufreq: amd-pstate: fix the memory to free after epp exist | expand |
On 5/16/2024 1:30 AM, zhida312@outlook.com wrote: > 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 from v3 to v4: > update subject used git command "git format-patch -1 -v x" > > Changes from v2 to v3: > update Signed-off-by to Peng Ma <andypma@tencent.com>. > set a space between if and "(". > > Changes from v1 to v2: > check whether it is empty before releasing > set driver_data is NULL after free > --- Thanks for your submission! I would prefer the change list below the cut list, but otherwise this is fine. Maybe Rafael can modify that while committing. Acked-by: Mario Limonciello <mario.limonciello@amd.com> > 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; > }
On Thu, May 16, 2024 at 9:47 AM Limonciello, Mario <mario.limonciello@amd.com> wrote: > > > > On 5/16/2024 1:30 AM, zhida312@outlook.com wrote: > > 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 from v3 to v4: > > update subject used git command "git format-patch -1 -v x" > > > > Changes from v2 to v3: > > update Signed-off-by to Peng Ma <andypma@tencent.com>. > > set a space between if and "(". > > > > Changes from v1 to v2: > > check whether it is empty before releasing > > set driver_data is NULL after free > > --- > > Thanks for your submission! > > I would prefer the change list below the cut list, but otherwise this is > fine. Maybe Rafael can modify that while committing. I can do that no problem. > Acked-by: Mario Limonciello <mario.limonciello@amd.com> Thanks! > > 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; > > }
[AMD Official Use Only - AMD Internal Distribution Only] > -----Original Message----- > From: zhida312@outlook.com <zhida312@outlook.com> > Sent: Thursday, May 16, 2024 2:31 PM > 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: [PATCH v4] 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 from v3 to v4: > update subject used git command "git format-patch -1 -v x" > > Changes from v2 to v3: > update Signed-off-by to Peng Ma <andypma@tencent.com>. > set a space between if and "(". > > Changes from v1 to v2: > 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 Looks good now Reviewed-by: Perry Yuan <Perry.Yuan@amd.com> Thanks Regards. Perry
On Thu, May 16, 2024 at 10:28 AM Yuan, Perry <Perry.Yuan@amd.com> wrote: > > [AMD Official Use Only - AMD Internal Distribution Only] > > > -----Original Message----- > > From: zhida312@outlook.com <zhida312@outlook.com> > > Sent: Thursday, May 16, 2024 2:31 PM > > 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: [PATCH v4] cpufreq: amd-pstate: fix the memory to free after epp > > exist > > > > From: andypma <andypma.tencent.com> The name and e-mail address in the From: header must be the same as in the Signed-off-by tag, so I've fixed that up. > > 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 from v3 to v4: > > update subject used git command "git format-patch -1 -v x" > > > > Changes from v2 to v3: > > update Signed-off-by to Peng Ma <andypma@tencent.com>. > > set a space between if and "(". > > > > Changes from v1 to v2: > > 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; > > + } This does not need to be conditional, because you can pass NULL to kfree(), but it is correct and since Mario has ACKed it -> > > + > > pr_debug("CPU %d exiting\n", policy->cpu); > > return 0; > > } > > -- > > 2.41.0 > > Looks good now > > Reviewed-by: Perry Yuan <Perry.Yuan@amd.com> -> applied as 6.10 material (with edited subject and changelog). Thanks!
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; }