Message ID | 20191203004116.11771-13-digetx@gmail.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | Consolidate and improve NVIDIA Tegra CPUIDLE driver(s) | expand |
diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c index c76423aaef4d..f8164f56c420 100644 --- a/drivers/cpuidle/driver.c +++ b/drivers/cpuidle/driver.c @@ -403,6 +403,9 @@ void cpuidle_driver_state_disabled(struct cpuidle_driver *drv, int idx, mutex_lock(&cpuidle_lock); + if (!drv->cpumask) + goto unlock; + for_each_cpu(cpu, drv->cpumask) { struct cpuidle_device *dev = per_cpu(cpuidle_devices, cpu); @@ -415,5 +418,6 @@ void cpuidle_driver_state_disabled(struct cpuidle_driver *drv, int idx, dev->states_usage[idx].disable &= ~CPUIDLE_STATE_DISABLED_BY_DRIVER; } +unlock: mutex_unlock(&cpuidle_lock); }
The cpumask is NULL if cpuidle_driver_state_disabled() is called before cpuidle driver is initialized. This shouldn't be a problem for now because cpuidle drivers are registered quite early. The NVIDIA Tegra cpuidle driver is going to be moved to a later init stage and thus it could become a problem if PCIE driver is probed earlier than cpuidle. Signed-off-by: Dmitry Osipenko <digetx@gmail.com> --- drivers/cpuidle/driver.c | 4 ++++ 1 file changed, 4 insertions(+)