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: ce1bcfe94d
(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>
This commit is contained in:
Родитель
be0408d74d
Коммит
6c77003677
|
@ -2468,6 +2468,7 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
|
||||||
if (!(cpufreq_driver->flags & CPUFREQ_STICKY) &&
|
if (!(cpufreq_driver->flags & CPUFREQ_STICKY) &&
|
||||||
list_empty(&cpufreq_policy_list)) {
|
list_empty(&cpufreq_policy_list)) {
|
||||||
/* if all ->init() calls failed, unregister */
|
/* if all ->init() calls failed, unregister */
|
||||||
|
ret = -ENODEV;
|
||||||
pr_debug("%s: No CPU initialized for driver %s\n", __func__,
|
pr_debug("%s: No CPU initialized for driver %s\n", __func__,
|
||||||
driver_data->name);
|
driver_data->name);
|
||||||
goto err_if_unreg;
|
goto err_if_unreg;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче