Page MenuHomeFreeBSD

D15646.id43250.diff
No OneTemporary

D15646.id43250.diff

Index: sys/x86/isa/nmi.c
===================================================================
--- sys/x86/isa/nmi.c
+++ sys/x86/isa/nmi.c
@@ -37,7 +37,8 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/sysctl.h>
#include <sys/syslog.h>
#include <sys/systm.h>
@@ -45,10 +46,16 @@
#define NMI_PARITY (1 << 7)
#define NMI_IOCHAN (1 << 6)
+#define NMI_TIMER2 (1 << 5)
#define ENMI_WATCHDOG (1 << 7)
#define ENMI_BUSTIMER (1 << 6)
#define ENMI_IOSTATUS (1 << 5)
+static int panic_on_isa_timer2 = 0;
+SYSCTL_INT(_machdep, OID_AUTO, panic_on_isa_timer2, CTLFLAG_RWTUN,
+ &panic_on_isa_timer2, 0,
+ "Panic on NMI for ISA timer2 signal (used by some IPMI boards)");
+
/*
* Handle a NMI, possibly a machine check.
* return true to panic system, false to ignore.
@@ -69,6 +76,11 @@
if (isa_port & NMI_IOCHAN) {
log(LOG_CRIT, "I/O channel check, likely hardware failure.");
+ retval = 1;
+ }
+
+ if ((isa_port & NMI_TIMER2) && panic_on_isa_timer2) {
+ log(LOG_CRIT, "ISA timer 2 signal received.");
retval = 1;
}

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 23, 12:21 PM (10 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35401757
Default Alt Text
D15646.id43250.diff (1 KB)

Event Timeline