summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-03-06 22:43:39 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-06 22:43:39 -0800
commit5f92ec65b96b46e75d3e9bee66477fb7ae573f86 (patch)
tree68cea004e83ca1c2013ef52ca563a3997b1d5223
parentfb2e8b97faed615ec52f766dc8e210066d43806a (diff)
parent3b2e3dcd9a705c26d7576177c3565938d7cd4556 (diff)
Merge "lpm-levels: Return from idle enter for negative mode"
-rw-r--r--drivers/cpuidle/lpm-levels.c7
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);