summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_intr.c
diff options
context:
space:
mode:
authorkmacy <kmacy@FreeBSD.org>2008-08-22 23:24:53 +0000
committerkmacy <kmacy@FreeBSD.org>2008-08-22 23:24:53 +0000
commitdf8989694aac0a70bc98cc1bb99a9bd557f441b7 (patch)
tree927949e820a29562ce592891de4d177285b532e9 /sys/kern/kern_intr.c
parenta6b774bc3b273e7c391ec85e6c7e92dffc7d1354 (diff)
downloadFreeBSD-src-df8989694aac0a70bc98cc1bb99a9bd557f441b7.zip
FreeBSD-src-df8989694aac0a70bc98cc1bb99a9bd557f441b7.tar.gz
Submit a band-aid for interrupt set up race.
MFC after: 1 month
Diffstat (limited to 'sys/kern/kern_intr.c')
-rw-r--r--sys/kern/kern_intr.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c
index 78ae6010..41be569 100644
--- a/sys/kern/kern_intr.c
+++ b/sys/kern/kern_intr.c
@@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$");
#include <sys/sched.h>
#include <sys/smp.h>
#include <sys/sysctl.h>
+#include <sys/syslog.h>
#include <sys/unistd.h>
#include <sys/vmmeter.h>
#include <machine/atomic.h>
@@ -1312,7 +1313,12 @@ intr_event_handle(struct intr_event *ie, struct trapframe *frame)
/* Schedule the ithread if needed. */
if (thread) {
error = intr_event_schedule_thread(ie);
+#ifndef XEN
KASSERT(error == 0, ("bad stray interrupt"));
+#else
+ if (error != 0)
+ log(LOG_WARNING, "bad stray interrupt");
+#endif
}
critical_exit();
td->td_intr_nesting_level--;
OpenPOWER on IntegriCloud