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

From: Rafael J. Wysocki
Date: Thu May 16 2024 - 04:42:38 EST


On Thu, May 16, 2024 at 10:28 AM Yuan, Perry <Perry.Yuan@xxxxxxx> wrote:
>
> [AMD Official Use Only - AMD Internal Distribution Only]
>
> > -----Original Message-----
> > From: zhida312@xxxxxxxxxxx <zhida312@xxxxxxxxxxx>
> > Sent: Thursday, May 16, 2024 2:31 PM
> > To: rafael@xxxxxxxxxx; viresh.kumar@xxxxxxxxxx
> > Cc: Peng Ma <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: [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@xxxxxxxxxxx>
> >
> > 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@xxxxxxxxxxx>.
> > 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@xxxxxxx>

-> applied as 6.10 material (with edited subject and changelog).

Thanks!