summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Arcari <darcari@redhat.com>2017-05-26 18:37:31 +0300
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2017-05-30 01:07:20 +0300
commit6c77003677d5f1ce15f26d24360cb66c0bc07bb3 (patch)
tree0ff7ebad5e998325d125d45ad838ca6f2389ee8e
parentbe0408d74d9c95de1baf6c2563b6e6d1dfb17b88 (diff)
downloadlinux-6c77003677d5f1ce15f26d24360cb66c0bc07bb3.tar.xz
cpufreq: cpufreq_register_driver() should return -ENODEV if init fails
For a driver that does not set the CPUFREQ_STICKY flag, if all of the ->init() calls fail, cpufreq_register_driver() should return an error. This will prevent the driver from loading. Fixes: ce1bcfe94db8 (cpufreq: check cpufreq_policy_list instead of scanning policies for all CPUs) Cc: 4.0+ <stable@vger.kernel.org> # 4.0+ Signed-off-by: David Arcari <darcari@redhat.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--drivers/cpufreq/cpufreq.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 0e3f6496524d..26b643d57847 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -2468,6 +2468,7 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
if (!(cpufreq_driver->flags & CPUFREQ_STICKY) &&
list_empty(&cpufreq_policy_list)) {
/* if all ->init() calls failed, unregister */
+ ret = -ENODEV;
pr_debug("%s: No CPU initialized for driver %s\n", __func__,
driver_data->name);
goto err_if_unreg;