On Mon, Sep 1, 2025 at 10:58 AM Zihuan Zhang <zhangzih...@kylinos.cn> 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> > --- > drivers/acpi/processor_thermal.c | 18 ++++++------------ > 1 file changed, 6 insertions(+), 12 deletions(-) > > diff --git a/drivers/acpi/processor_thermal.c > b/drivers/acpi/processor_thermal.c > index 1219adb11ab9..3c8b57df9619 100644 > --- a/drivers/acpi/processor_thermal.c > +++ b/drivers/acpi/processor_thermal.c > @@ -62,19 +62,14 @@ static int phys_package_first_cpu(int cpu) > return 0; > } > > -static int cpu_has_cpufreq(unsigned int cpu) > +static bool cpu_has_cpufreq(unsigned int cpu) > { > - struct cpufreq_policy *policy; > + struct cpufreq_policy *policy __free(put_cpufreq_policy) = > cpufreq_cpu_get(cpu); > > if (!acpi_processor_cpufreq_init) > return 0; > > - policy = cpufreq_cpu_get(cpu); > - if (policy) { > - cpufreq_cpu_put(policy); > - return 1; > - } > - return 0; > + return !!policy; > } > > static int cpufreq_get_max_state(unsigned int cpu) > @@ -95,7 +90,6 @@ static int cpufreq_get_cur_state(unsigned int cpu) > > static int cpufreq_set_cur_state(unsigned int cpu, int state) > { > - struct cpufreq_policy *policy; > struct acpi_processor *pr; > unsigned long max_freq; > int i, ret; > @@ -111,6 +105,9 @@ static int cpufreq_set_cur_state(unsigned int cpu, int > state) > * frequency. > */ > for_each_online_cpu(i) {
I would still prefer the code below to be moved to a separate function that would be called in each step of the for_each_online_cpu() loop. > + struct cpufreq_policy *policy __free(put_cpufreq_policy) = > + cpufreq_cpu_get(i); > + > if (topology_physical_package_id(i) != > topology_physical_package_id(cpu)) > continue; > @@ -120,15 +117,12 @@ static int cpufreq_set_cur_state(unsigned int cpu, int > state) > if (unlikely(!freq_qos_request_active(&pr->thermal_req))) > continue; > > - policy = cpufreq_cpu_get(i); > if (!policy) > return -EINVAL; > > max_freq = (policy->cpuinfo.max_freq * > (100 - reduction_step(i) * > cpufreq_thermal_reduction_pctg)) / 100; > > - cpufreq_cpu_put(policy); > - > ret = freq_qos_update_request(&pr->thermal_req, max_freq); > if (ret < 0) { > pr_warn("Failed to update thermal freq constraint: > CPU%d (%d)\n", > -- > 2.25.1 > >