Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc85de36 authored by Sebastian Andrzej Siewior's avatar Sebastian Andrzej Siewior Committed by Rafael J. Wysocki
Browse files

cpufreq: Use static SRCU initializer



Use the static SRCU initializer for `cpufreq_transition_notifier_list'.
This avoids the init_cpufreq_transition_notifier_list() initcall. Its
only purpose is to initialize the SRCU notifier once during boot and set
another variable which is used as an indicator whether the init was
perfromed before cpufreq_register_notifier() was used.

Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 9c80172b
Loading
Loading
Loading
Loading
+1 −12
Original line number Original line Diff line number Diff line
@@ -89,16 +89,7 @@ static void cpufreq_governor_limits(struct cpufreq_policy *policy);
 * The mutex locks both lists.
 * The mutex locks both lists.
 */
 */
static BLOCKING_NOTIFIER_HEAD(cpufreq_policy_notifier_list);
static BLOCKING_NOTIFIER_HEAD(cpufreq_policy_notifier_list);
static struct srcu_notifier_head cpufreq_transition_notifier_list;
SRCU_NOTIFIER_HEAD_STATIC(cpufreq_transition_notifier_list);

static bool init_cpufreq_transition_notifier_list_called;
static int __init init_cpufreq_transition_notifier_list(void)
{
	srcu_init_notifier_head(&cpufreq_transition_notifier_list);
	init_cpufreq_transition_notifier_list_called = true;
	return 0;
}
pure_initcall(init_cpufreq_transition_notifier_list);


static int off __read_mostly;
static int off __read_mostly;
static int cpufreq_disabled(void)
static int cpufreq_disabled(void)
@@ -1767,8 +1758,6 @@ int cpufreq_register_notifier(struct notifier_block *nb, unsigned int list)
	if (cpufreq_disabled())
	if (cpufreq_disabled())
		return -EINVAL;
		return -EINVAL;


	WARN_ON(!init_cpufreq_transition_notifier_list_called);

	switch (list) {
	switch (list) {
	case CPUFREQ_TRANSITION_NOTIFIER:
	case CPUFREQ_TRANSITION_NOTIFIER:
		mutex_lock(&cpufreq_fast_switch_lock);
		mutex_lock(&cpufreq_fast_switch_lock);