浏览代码

x86: apic unification - merge down enable_NMI_through_LVT0

No code change on binary level.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: macro@linux-mips.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cyrill Gorcunov 17 年之前
父节点
当前提交
d4c63ec060
共有 2 个文件被更改,包括 11 次插入2 次删除
  1. 6 2
      arch/x86/kernel/apic_32.c
  2. 5 0
      arch/x86/kernel/apic_64.c

+ 6 - 2
arch/x86/kernel/apic_32.c

@@ -172,11 +172,15 @@ u32 safe_apic_wait_icr_idle(void)
  */
  */
 void __cpuinit enable_NMI_through_LVT0(void)
 void __cpuinit enable_NMI_through_LVT0(void)
 {
 {
-	unsigned int v = APIC_DM_NMI;
+	unsigned int v;
+
+	/* unmask and set to NMI */
+	v = APIC_DM_NMI;
 
 
-	/* Level triggered for 82489DX */
+	/* Level triggered for 82489DX (32bit mode) */
 	if (!lapic_is_integrated())
 	if (!lapic_is_integrated())
 		v |= APIC_LVT_LEVEL_TRIGGER;
 		v |= APIC_LVT_LEVEL_TRIGGER;
+
 	apic_write(APIC_LVT0, v);
 	apic_write(APIC_LVT0, v);
 }
 }
 
 

+ 5 - 0
arch/x86/kernel/apic_64.c

@@ -150,6 +150,11 @@ void __cpuinit enable_NMI_through_LVT0(void)
 
 
 	/* unmask and set to NMI */
 	/* unmask and set to NMI */
 	v = APIC_DM_NMI;
 	v = APIC_DM_NMI;
+
+	/* Level triggered for 82489DX (32bit mode) */
+	if (!lapic_is_integrated())
+		v |= APIC_LVT_LEVEL_TRIGGER;
+
 	apic_write(APIC_LVT0, v);
 	apic_write(APIC_LVT0, v);
 }
 }