diff options
author | jhb <jhb@FreeBSD.org> | 2005-11-28 20:18:43 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2005-11-28 20:18:43 +0000 |
commit | f1fc36279dda40d36c1a4999223f2686959d0e15 (patch) | |
tree | 672c338e34500c45b3edaa146ccbfda1db3eb6d4 /sys/amd64 | |
parent | 76c1ae2002f9457d3af0231496c3e8b00bdfc7ca (diff) | |
download | FreeBSD-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.c | 1 |
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; } /* |