aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi')
-rw-r--r--drivers/acpi/processor_idle.c8
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 */
825static inline void acpi_idle_do_entry(struct acpi_processor_cx *cx) 825static 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