On Wed, Aug 27, 2025 at 09:30:13AM +0100, Ben Horgan wrote: > Hi Zihuan, > > On 8/27/25 03:31, Zihuan Zhang wrote: > > Replace the manual cpufreq_cpu_put() with __free(put_cpufreq_policy) > > annotation for policy references. This reduces the risk of reference > > counting mistakes and aligns the code with the latest kernel style. > > > > No functional change intended. > > > > Signed-off-by: Zihuan Zhang <zhangzih...@kylinos.cn> > > --- > > arch/arm64/kernel/topology.c | 9 +++------ > > 1 file changed, 3 insertions(+), 6 deletions(-) > > > > diff --git a/arch/arm64/kernel/topology.c b/arch/arm64/kernel/topology.c > > index 5d07ee85bdae..e3cb6d54f35b 100644 > > --- a/arch/arm64/kernel/topology.c > > +++ b/arch/arm64/kernel/topology.c > > @@ -307,17 +307,16 @@ int arch_freq_get_on_cpu(int cpu) > > */ > > if (!housekeeping_cpu(cpu, HK_TYPE_TICK) || > > time_is_before_jiffies(last_update + > > msecs_to_jiffies(AMU_SAMPLE_EXP_MS))) { > > - struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); > > + struct cpufreq_policy *policy > > __free(put_cpufreq_policy); > Based on the guidance, in include/linux/cleanup.h, I would expect the > assignment to be done on this line. > > "...the recommendation is to always define and assign variables in one > * statement and not group variable definitions at the top of the > * function when __free() is used." >
Agreed. I did something similar recently and there was a code path where variable wasn't initialised and ended up with freeing unassigned pointer. So it is more than just a recommendation sometimes. -- Regards, Sudeep