On Wed, 3 Sep 2025 21:17:26 +0800 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> One trivial comment inline. This LGTM Reviewed-by: Jonathan Cameron <jonathan.came...@huawei.com> > --- > drivers/cpufreq/intel_pstate.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c > index f366d35c5840..925efb1e65be 100644 > --- a/drivers/cpufreq/intel_pstate.c > +++ b/drivers/cpufreq/intel_pstate.c > @@ -1209,6 +1209,17 @@ static bool hybrid_clear_max_perf_cpu(void) > return ret; > } > > +static struct freq_qos_request *intel_pstate_cpufreq_get_req(int cpu) > +{ > + struct cpufreq_policy *policy __free(put_cpufreq_policy) = > + cpufreq_cpu_get(cpu); > + > + if (!policy) > + return NULL; > + > + return policy->driver_data; > +} > + > static void __intel_pstate_get_hwp_cap(struct cpudata *cpu) > { > u64 cap; > @@ -1698,19 +1709,13 @@ static ssize_t store_no_turbo(struct kobject *a, > struct kobj_attribute *b, > static void update_qos_request(enum freq_qos_req_type type) > { > struct freq_qos_request *req; > - struct cpufreq_policy *policy; > int i; > > for_each_possible_cpu(i) { > struct cpudata *cpu = all_cpu_data[i]; > unsigned int freq, perf_pct; > > - policy = cpufreq_cpu_get(i); > - if (!policy) > - continue; > - > - req = policy->driver_data; > - cpufreq_cpu_put(policy); > + req = intel_pstate_cpufreq_get_req(i); > I'd drop this blank line as it'll keep the setting or req and checking it closely coupled. Previously the put inbetween stopped that but now we can improve the formatting! > if (!req) > continue;