Messages in this thread Patch in this message | | | From | Viresh Kumar <> | Subject | [PATCH 2/3] cpufreq: Panic if policy is active in cpufreq_policy_free() | Date | Thu, 26 May 2022 17:21:20 +0530 |
| |
With the new design in place, show/store callbacks check if the policy is active or not before proceeding further and cpufreq_policy_free() must be called after emptying policy->cpus mask, i.e. inactive policy.
Lets make sure we don't get a bug around this later and catch this early by putting a BUG_ON() within cpufreq_policy_free().
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- drivers/cpufreq/cpufreq.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index e24aa5d4bca5..53d163a84e06 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -1284,6 +1284,12 @@ static void cpufreq_policy_free(struct cpufreq_policy *policy) unsigned long flags; int cpu; + /* + * The callers must ensure the policy is inactive by now, to avoid any + * races with show()/store() callbacks. + */ + BUG_ON(!policy_is_inactive(policy)); + /* Remove policy from list */ write_lock_irqsave(&cpufreq_driver_lock, flags); list_del(&policy->policy_list); -- 2.31.1.272.g89b43f80a514
| |