diff options
Diffstat (limited to 'arch/x86/kernel/process_64.c')
-rw-r--r-- | arch/x86/kernel/process_64.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index ca6f7ab8df33..f693e44e1bf6 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/uaccess.h> | 37 | #include <linux/uaccess.h> |
38 | #include <linux/io.h> | 38 | #include <linux/io.h> |
39 | #include <linux/ftrace.h> | 39 | #include <linux/ftrace.h> |
40 | #include <linux/cpuidle.h> | ||
40 | 41 | ||
41 | #include <asm/pgtable.h> | 42 | #include <asm/pgtable.h> |
42 | #include <asm/system.h> | 43 | #include <asm/system.h> |
@@ -136,7 +137,8 @@ void cpu_idle(void) | |||
136 | enter_idle(); | 137 | enter_idle(); |
137 | /* Don't trace irqs off for idle */ | 138 | /* Don't trace irqs off for idle */ |
138 | stop_critical_timings(); | 139 | stop_critical_timings(); |
139 | pm_idle(); | 140 | if (cpuidle_idle_call()) |
141 | pm_idle(); | ||
140 | start_critical_timings(); | 142 | start_critical_timings(); |
141 | 143 | ||
142 | /* In many cases the interrupt that ended idle | 144 | /* In many cases the interrupt that ended idle |