On Wed, Sep 3, 2025 at 3:22 PM Krzysztof Kozlowski <k...@kernel.org> wrote: > > On 03/09/2025 15:17, 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> > > --- > > kernel/power/energy_model.c | 7 ++----- > > 1 file changed, 2 insertions(+), 5 deletions(-) > > > > diff --git a/kernel/power/energy_model.c b/kernel/power/energy_model.c > > index ea7995a25780..99401678e809 100644 > > --- a/kernel/power/energy_model.c > > +++ b/kernel/power/energy_model.c > > @@ -451,7 +451,7 @@ static void > > em_cpufreq_update_efficiencies(struct device *dev, struct em_perf_state > > *table) > > { > > struct em_perf_domain *pd = dev->em_pd; > > - struct cpufreq_policy *policy; > > + struct cpufreq_policy *policy __free(put_cpufreq_policy) = NULL; > > This is not really correct coding style. Please read how to use > cleanup.h expressed in that header. You should have here proper > constructor or this should be moved. Or this should not be __free()...
I gather that this is what you mean (quoted verbatim from cleanup.h) * Given that the "__free(...) = NULL" pattern for variables defined at * the top of the function poses this potential interdependency problem * 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. and thanks for pointing this out!