From: Zwane Mwaikambo The P4 thermal interrupt vector was only getting set on SMP builds. 25-akpm/arch/i386/kernel/apic.c | 5 +++++ 25-akpm/arch/i386/kernel/smpboot.c | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff -puN arch/i386/kernel/apic.c~p4-thermal-interrupt-fix arch/i386/kernel/apic.c --- 25/arch/i386/kernel/apic.c~p4-thermal-interrupt-fix Fri Aug 8 12:57:03 2003 +++ 25-akpm/arch/i386/kernel/apic.c Fri Aug 8 12:57:03 2003 @@ -52,6 +52,11 @@ void __init apic_intr_init(void) /* IPI vectors for APIC spurious and error interrupts */ set_intr_gate(SPURIOUS_APIC_VECTOR, spurious_interrupt); set_intr_gate(ERROR_APIC_VECTOR, error_interrupt); + + /* thermal monitor LVT interrupt */ +#ifdef CONFIG_X86_MCE_P4THERMAL + set_intr_gate(THERMAL_APIC_VECTOR, thermal_interrupt); +#endif } /* Using APIC to generate smp_local_timer_interrupt? */ diff -puN arch/i386/kernel/smpboot.c~p4-thermal-interrupt-fix arch/i386/kernel/smpboot.c --- 25/arch/i386/kernel/smpboot.c~p4-thermal-interrupt-fix Fri Aug 8 12:57:03 2003 +++ 25-akpm/arch/i386/kernel/smpboot.c Fri Aug 8 12:57:03 2003 @@ -1180,9 +1180,4 @@ void __init smp_intr_init(void) /* IPI for generic function call */ set_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt); - - /* thermal monitor LVT interrupt */ -#ifdef CONFIG_X86_MCE_P4THERMAL - set_intr_gate(THERMAL_APIC_VECTOR, thermal_interrupt); -#endif } _