summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1996-12-24 20:29:03 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1996-12-24 20:29:03 +0000
commit3894b59d71fd90eebe0c775c6197d1bed1b17bfb (patch)
treea368b4f8a14eef0e683e5de15c856cbb8811ad57 /sys/arch
parent62cd8c0c89536d1ce565b716e6e360685483b880 (diff)
call all irq routines
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/mvme68k/mvme68k/trap.c8
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 */