diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-03-06 22:43:39 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-03-06 22:43:39 -0800 |
| commit | 5f92ec65b96b46e75d3e9bee66477fb7ae573f86 (patch) | |
| tree | 68cea004e83ca1c2013ef52ca563a3997b1d5223 | |
| parent | fb2e8b97faed615ec52f766dc8e210066d43806a (diff) | |
| parent | 3b2e3dcd9a705c26d7576177c3565938d7cd4556 (diff) | |
Merge "lpm-levels: Return from idle enter for negative mode"
| -rw-r--r-- | drivers/cpuidle/lpm-levels.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/cpuidle/lpm-levels.c b/drivers/cpuidle/lpm-levels.c index d8e571981c35..64c4bf8f58a8 100644 --- a/drivers/cpuidle/lpm-levels.c +++ b/drivers/cpuidle/lpm-levels.c @@ -1542,11 +1542,14 @@ static int lpm_cpuidle_enter(struct cpuidle_device *dev, struct cpuidle_driver *drv, int idx) { struct lpm_cluster *cluster = per_cpu(cpu_cluster, dev->cpu); - bool success = true; + bool success = false; const struct cpumask *cpumask = get_cpu_mask(dev->cpu); int64_t start_time = ktime_to_ns(ktime_get()), end_time; struct power_params *pwr_params; + if (idx < 0) + return -EINVAL; + pwr_params = &cluster->cpu->levels[idx].pwr; sched_set_cpu_cstate(smp_processor_id(), idx + 1, pwr_params->energy_overhead, pwr_params->latency_us); @@ -1559,7 +1562,7 @@ static int lpm_cpuidle_enter(struct cpuidle_device *dev, trace_cpu_idle_enter(idx); lpm_stats_cpu_enter(idx, start_time); - if (need_resched() || (idx < 0)) + if (need_resched()) goto exit; BUG_ON(!use_psci); |
