summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2025-03-28 21:44:50 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2025-04-09 21:22:10 +0200
commit9a74bfdfd07f99b09fa4aaccacd17248b8629a07 (patch)
treee42be609abdc6e07f8d806f497b1bfd479869bc2
parent973207ae3d7c3c92df4a382df5d7bd695deaa904 (diff)
cpufreq: Use locking guard and __free() in cpufreq_update_policy()
Instead of using cpufreq_cpu_acquire() and cpufreq_cpu_release() in cpufreq_update_policy(), which is the last user of these functions, make it use __free() for policy reference counting cleanup and the "write" locking guard for policy locking. No intentional functional impact. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com> Acked-by: Sudeep Holla <sudeep.holla@arm.com> Tested-by: Sudeep Holla <sudeep.holla@arm.com> Link: https://patch.msgid.link/22654186.EfDdHjke4D@rjwysocki.net
-rw-r--r--drivers/cpufreq/cpufreq.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index a3abd9c0440d..40244ff620b6 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -2780,23 +2780,23 @@ static int cpufreq_set_policy(struct cpufreq_policy *policy,
*/
void cpufreq_update_policy(unsigned int cpu)
{
- struct cpufreq_policy *policy = cpufreq_cpu_acquire(cpu);
+ struct cpufreq_policy *policy __free(put_cpufreq_policy);
+ policy = cpufreq_cpu_get(cpu);
if (!policy)
return;
+ guard(cpufreq_policy_write)(policy);
+
/*
* BIOS might change freq behind our back
* -> ask driver for current freq and notify governors about a change
*/
if (cpufreq_driver->get && has_target() &&
(cpufreq_suspended || WARN_ON(!cpufreq_verify_current_freq(policy, false))))
- goto unlock;
+ return;
refresh_frequency_limits(policy);
-
-unlock:
- cpufreq_cpu_release(policy);
}
EXPORT_SYMBOL(cpufreq_update_policy);