lkml.org 
[lkml]   [2002]   [Sep]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[patch] fix NMI watchdog, 2.5.34

the attached patch fixes the NMI watchdog to trigger on all CPUs - the
cpu_up() code broke it long time ago. With this patch NMI interrupts get
generated on all CPUs, not just the boot CPU.

Ingo

--- linux/arch/i386/kernel/io_apic.c.orig Mon Sep 9 21:34:53 2002
+++ linux/arch/i386/kernel/io_apic.c Mon Sep 9 21:37:27 2002
@@ -1490,7 +1490,7 @@
end_lapic_irq
};

-static void enable_NMI_through_LVT0 (void * dummy)
+void enable_NMI_through_LVT0 (void * dummy)
{
unsigned int v, ver;

--- linux/arch/i386/kernel/smpboot.c.orig Mon Sep 9 21:35:48 2002
+++ linux/arch/i386/kernel/smpboot.c Mon Sep 9 21:43:00 2002
@@ -452,6 +452,11 @@
while (!test_bit(smp_processor_id(), &smp_commenced_mask))
rep_nop();
setup_secondary_APIC_clock();
+ if (nmi_watchdog == NMI_IO_APIC) {
+ disable_8259A_irq(0);
+ enable_NMI_through_LVT0(NULL);
+ enable_8259A_irq(0);
+ }
enable_APIC_timer();
/*
* low-memory mappings have been cleared, flush them from
--- linux/include/asm-i386/apic.h.orig Mon Sep 9 21:37:43 2002
+++ linux/include/asm-i386/apic.h Mon Sep 9 21:37:51 2002
@@ -89,6 +89,7 @@

extern unsigned int apic_timer_irqs [NR_CPUS];
extern int check_nmi_watchdog (void);
+extern void enable_NMI_through_LVT0 (void * dummy);

extern unsigned int nmi_watchdog;
#define NMI_NONE 0
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:28    [W:0.078 / U:2.152 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site