aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/process.c')
-rw-r--r--arch/x86/kernel/process.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 7dceea947232..7fc729498760 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -7,6 +7,10 @@
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/pm.h> 8#include <linux/pm.h>
9#include <linux/clockchips.h> 9#include <linux/clockchips.h>
10#include <asm/system.h>
11
12unsigned long idle_halt;
13EXPORT_SYMBOL(idle_halt);
10 14
11struct kmem_cache *task_xstate_cachep; 15struct kmem_cache *task_xstate_cachep;
12 16
@@ -325,7 +329,18 @@ static int __init idle_setup(char *str)
325 pm_idle = poll_idle; 329 pm_idle = poll_idle;
326 } else if (!strcmp(str, "mwait")) 330 } else if (!strcmp(str, "mwait"))
327 force_mwait = 1; 331 force_mwait = 1;
328 else 332 else if (!strcmp(str, "halt")) {
333 /*
334 * When the boot option of idle=halt is added, halt is
335 * forced to be used for CPU idle. In such case CPU C2/C3
336 * won't be used again.
337 * To continue to load the CPU idle driver, don't touch
338 * the boot_option_idle_override.
339 */
340 pm_idle = default_idle;
341 idle_halt = 1;
342 return 0;
343 } else
329 return -1; 344 return -1;
330 345
331 boot_option_idle_override = 1; 346 boot_option_idle_override = 1;