summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2005-11-28 20:18:43 +0000
committerjhb <jhb@FreeBSD.org>2005-11-28 20:18:43 +0000
commitf1fc36279dda40d36c1a4999223f2686959d0e15 (patch)
tree672c338e34500c45b3edaa146ccbfda1db3eb6d4 /sys/amd64
parent76c1ae2002f9457d3af0231496c3e8b00bdfc7ca (diff)
downloadFreeBSD-src-f1fc36279dda40d36c1a4999223f2686959d0e15.zip
FreeBSD-src-f1fc36279dda40d36c1a4999223f2686959d0e15.tar.gz
If we get a stray interrupt, return after logging it. In the extremely
rare case of a stray interrupt to an unregistered source (such as a stray interrupt from the 8259As when using APIC), this could result in a page fault when it tried to walk the list of interrupt handlers to execute INTR_FAST handlers. This bug was introduced with the intr_event changes, so it's not present in 5.x or 6.x. Submitted by: Mark Tinguely tinguely at casselton dot net
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/intr_machdep.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/amd64/amd64/intr_machdep.c b/sys/amd64/amd64/intr_machdep.c
index c321e03..9092d87 100644
--- a/sys/amd64/amd64/intr_machdep.c
+++ b/sys/amd64/amd64/intr_machdep.c
@@ -190,6 +190,7 @@ intr_execute_handlers(struct intsrc *isrc, struct intrframe *iframe)
log(LOG_CRIT,
"too many stray irq %d's: not logging anymore\n",
vector);
+ return;
}
/*
OpenPOWER on IntegriCloud