cpuidle: governor: Add new governors to cpuidle_governors again
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 12 Mar 2019 18:13:13 +0000 (19:13 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 12 Mar 2019 22:46:55 +0000 (23:46 +0100)
After commit 61cb5758d3c4 ("cpuidle: Add cpuidle.governor= command
line parameter") new cpuidle governors are not added to the list
of available governors, so governor selection via sysfs doesn't
work as expected (even though it is rarely used anyway).

Fix that by making cpuidle_register_governor() add new governors to
cpuidle_governors again.

Fixes: 61cb5758d3c4 ("cpuidle: Add cpuidle.governor= command line parameter")
Reported-by: Kees Cook <keescook@chromium.org>
Cc: 5.0+ <stable@vger.kernel.org> # 5.0+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpuidle/governor.c

index bb93e5cf6a4ae5ca386ef8bb67fbe22d6d8c651d..9fddf828a76f2c0fba82e08f14bb42aeb4dd2e8d 100644 (file)
@@ -89,6 +89,7 @@ int cpuidle_register_governor(struct cpuidle_governor *gov)
        mutex_lock(&cpuidle_lock);
        if (__cpuidle_find_governor(gov->name) == NULL) {
                ret = 0;
+               list_add_tail(&gov->governor_list, &cpuidle_governors);
                if (!cpuidle_curr_governor ||
                    !strncasecmp(param_governor, gov->name, CPUIDLE_NAME_LEN) ||
                    (cpuidle_curr_governor->rating < gov->rating &&