diff options
author | piso <piso@FreeBSD.org> | 2007-02-27 17:09:20 +0000 |
---|---|---|
committer | piso <piso@FreeBSD.org> | 2007-02-27 17:09:20 +0000 |
commit | 88a4a229c2a089bbd73c39097be1d75724c89b0f (patch) | |
tree | 278c4a9594c0025d8a46a206920f270182095e93 | |
parent | 843968091888fd46d557169a41fc4403d81b8edc (diff) | |
download | FreeBSD-src-88a4a229c2a089bbd73c39097be1d75724c89b0f.zip FreeBSD-src-88a4a229c2a089bbd73c39097be1d75724c89b0f.tar.gz |
Do not execute filter only handlers in ithread_execute_handlers():
this fixes the panics when filter only and ithread only handlers where
sharing the same irq .
-rw-r--r-- | sys/kern/kern_intr.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c index 96bdd4e..0964b9a 100644 --- a/sys/kern/kern_intr.c +++ b/sys/kern/kern_intr.c @@ -656,6 +656,10 @@ ithread_execute_handlers(struct proc *p, struct intr_event *ie) continue; } + /* Skip filter only handlers */ + if (ih->ih_handler == NULL) + continue; + /* * For software interrupt threads, we only execute * handlers that have their need flag set. Hardware |