aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic/apic.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/apic/apic.c')
-rw-r--r--arch/x86/kernel/apic/apic.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index dba2828b779a..08fb79f37793 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -834,6 +834,10 @@ bool __init apic_needs_pit(void)
834 if (!boot_cpu_has(X86_FEATURE_APIC)) 834 if (!boot_cpu_has(X86_FEATURE_APIC))
835 return true; 835 return true;
836 836
837 /* Virt guests may lack ARAT, but still have DEADLINE */
838 if (!boot_cpu_has(X86_FEATURE_ARAT))
839 return true;
840
837 /* Deadline timer is based on TSC so no further PIT action required */ 841 /* Deadline timer is based on TSC so no further PIT action required */
838 if (boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER)) 842 if (boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER))
839 return false; 843 return false;
@@ -1179,10 +1183,6 @@ void clear_local_APIC(void)
1179 apic_write(APIC_LVT0, v | APIC_LVT_MASKED); 1183 apic_write(APIC_LVT0, v | APIC_LVT_MASKED);
1180 v = apic_read(APIC_LVT1); 1184 v = apic_read(APIC_LVT1);
1181 apic_write(APIC_LVT1, v | APIC_LVT_MASKED); 1185 apic_write(APIC_LVT1, v | APIC_LVT_MASKED);
1182 if (!x2apic_enabled()) {
1183 v = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
1184 apic_write(APIC_LDR, v);
1185 }
1186 if (maxlvt >= 4) { 1186 if (maxlvt >= 4) {
1187 v = apic_read(APIC_LVTPC); 1187 v = apic_read(APIC_LVTPC);
1188 apic_write(APIC_LVTPC, v | APIC_LVT_MASKED); 1188 apic_write(APIC_LVTPC, v | APIC_LVT_MASKED);