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/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); if (!req) continue; -- 2.25.1