summaryrefslogtreecommitdiffstats
path: root/kernel/sched/idle.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2014-05-22 10:37:06 +0200
committerIngo Molnar <mingo@kernel.org>2014-05-22 10:37:06 +0200
commitec6e7f4082aa0c6c4334149e74673b6ed736fb63 (patch)
tree0facf7775816261ffeeb9bb61468f9075d63cfb6 /kernel/sched/idle.c
parentMerge tag 'v3.15-rc6' into sched/core, to pick up the latest fixes (diff)
parentPM / suspend: Always use deepest C-state in the "freeze" sleep state (diff)
downloadlinux-ec6e7f4082aa0c6c4334149e74673b6ed736fb63.tar.xz
linux-ec6e7f4082aa0c6c4334149e74673b6ed736fb63.zip
Merge branch 'pm-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm into sched/core
Pull scheduling related CPU idle updates from Rafael J. Wysocki. Conflicts: kernel/sched/idle.c Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sched/idle.c')
-rw-r--r--kernel/sched/idle.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
index 34083c9ac976..25b9423abce9 100644
--- a/kernel/sched/idle.c
+++ b/kernel/sched/idle.c
@@ -98,10 +98,11 @@ static void cpuidle_idle_call(void)
rcu_idle_enter();
/*
- * Check if the cpuidle framework is ready, otherwise fallback
- * to the default arch specific idle method
+ * Ask the cpuidle framework to choose a convenient idle state.
+ * Fall back to the default arch idle method on errors.
*/
- if (cpuidle_enabled(drv, dev)) {
+ next_state = cpuidle_select(drv, dev);
+ if (next_state < 0) {
use_default:
/*
* We can't use the cpuidle framework, let's use the default
@@ -115,12 +116,6 @@ use_default:
goto exit_idle;
}
- /*
- * Ask the governor to choose an idle state it thinks
- * it is convenient to go to. There is *always* a
- * convenient idle state
- */
- next_state = cpuidle_select(drv, dev);
/*
* The idle task must be scheduled, it is pointless to