]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
cpufreq: Avoid calling get_governor() for first policy
authorZihuan Zhang <zhangzihuan@kylinos.cn>
Fri, 25 Jul 2025 04:14:50 +0000 (12:14 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 19 Aug 2025 19:13:12 +0000 (21:13 +0200)
commitc5746dc1898a1bd5518a03081dc7e380569e269d
tree4b53abf24c19807377361e78a109799d28dc8b09
parentc17b750b3ad9f45f2b6f7e6f7f4679844244f0b9
cpufreq: Avoid calling get_governor() for first policy

When a cpufreq driver registers the first policy, it may attempt to
initialize the policy governor from `last_governor`. However, this is
meaningless for the first policy instance, because `last_governor` is
only updated when policies are removed (e.g. during CPU offline).

The `last_governor` mechanism is intended to restore the previously
used governor across CPU hotplug events. For the very first policy,
there is no "previous governor" to restore, so calling
get_governor(last_governor) is unnecessary and potentially confusing.

Skip looking up `last_governor` when registering the first policy.
Instead, it directly uses the default governor after all governors
have been registered and are available.

This avoids meaningless lookups, reduces unnecessary module reference
handling, and simplifies the initial policy path.

Signed-off-by: Zihuan Zhang <zhangzihuan@kylinos.cn>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Lifeng Zheng <zhenglifeng1@huawei.com>
Link: https://patch.msgid.link/20250725041450.68754-1-zhangzihuan@kylinos.cn
[ rjw: Subject and changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/cpufreq.c