diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-12-24 20:29:03 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-12-24 20:29:03 +0000 |
commit | 3894b59d71fd90eebe0c775c6197d1bed1b17bfb (patch) | |
tree | a368b4f8a14eef0e683e5de15c856cbb8811ad57 /sys/arch/mvme68k | |
parent | 62cd8c0c89536d1ce565b716e6e360685483b880 (diff) |
call all irq routines
Diffstat (limited to 'sys/arch/mvme68k')
-rw-r--r-- | sys/arch/mvme68k/mvme68k/trap.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/arch/mvme68k/mvme68k/trap.c b/sys/arch/mvme68k/mvme68k/trap.c index fb4bde04d11..05ee76df038 100644 --- a/sys/arch/mvme68k/mvme68k/trap.c +++ b/sys/arch/mvme68k/mvme68k/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.7 1996/06/11 10:07:13 deraadt Exp $ */ +/* $OpenBSD: trap.c,v 1.8 1996/12/24 20:29:02 deraadt Exp $ */ /* * Copyright (c) 1995 Theo de Raadt @@ -1134,6 +1134,7 @@ hardintr(pc, evec, frame) int vec = (evec & 0xfff) >> 2; /* XXX should be m68k macro? */ extern u_long intrcnt[]; /* XXX from locore */ struct intrhand *ih; + int count = 0; int r; cnt.v_intr++; @@ -1141,9 +1142,10 @@ hardintr(pc, evec, frame) for (ih = intrs[vec]; ih; ih = ih->ih_next) { r = (*ih->ih_fn)(ih->ih_wantframe ? frame : ih->ih_arg); if (r > 0) - return; + count++; } - return (straytrap(pc, evec)); + if (count == 0) + return (straytrap(pc, evec)); } #endif /* !INTR_ASM */ |