diff options
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/processor_idle.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index 7bc22a471fe3..259f6e806314 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
@@ -824,8 +824,14 @@ static int acpi_idle_bm_check(void) | |||
824 | */ | 824 | */ |
825 | static inline void acpi_idle_do_entry(struct acpi_processor_cx *cx) | 825 | static inline void acpi_idle_do_entry(struct acpi_processor_cx *cx) |
826 | { | 826 | { |
827 | u64 perf_flags; | ||
828 | |||
829 | u64 pctrl; | ||
830 | |||
827 | /* Don't trace irqs off for idle */ | 831 | /* Don't trace irqs off for idle */ |
828 | stop_critical_timings(); | 832 | stop_critical_timings(); |
833 | perf_flags = hw_perf_save_disable(); | ||
834 | pctrl = hw_perf_save_disable(); | ||
829 | if (cx->entry_method == ACPI_CSTATE_FFH) { | 835 | if (cx->entry_method == ACPI_CSTATE_FFH) { |
830 | /* Call into architectural FFH based C-state */ | 836 | /* Call into architectural FFH based C-state */ |
831 | acpi_processor_ffh_cstate_enter(cx); | 837 | acpi_processor_ffh_cstate_enter(cx); |
@@ -840,6 +846,8 @@ static inline void acpi_idle_do_entry(struct acpi_processor_cx *cx) | |||
840 | gets asserted in time to freeze execution properly. */ | 846 | gets asserted in time to freeze execution properly. */ |
841 | unused = inl(acpi_gbl_FADT.xpm_timer_block.address); | 847 | unused = inl(acpi_gbl_FADT.xpm_timer_block.address); |
842 | } | 848 | } |
849 | hw_perf_restore(perf_flags); | ||
850 | hw_perf_restore(pctrl); | ||
843 | start_critical_timings(); | 851 | start_critical_timings(); |
844 | } | 852 | } |
845 | 853 | ||