summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2005-10-09 03:50:12 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2005-10-09 03:50:12 +0000
commit9a11f8240f72f88f20b3fe21bf77be112b0c8294 (patch)
treeed8db02d0b5fbb9415d21bfeffef7d9efad768ec /sys/arch
parent53715a1068e833ebad9c40494ca1b3ebcc124865 (diff)
While running pending interrupts, enable external interrupt, this way
low priority interrupts do not starve high priority.
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/macppc/dev/openpic.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/arch/macppc/dev/openpic.c b/sys/arch/macppc/dev/openpic.c
index bf50b2c528e..97a9f3129e5 100644
--- a/sys/arch/macppc/dev/openpic.c
+++ b/sys/arch/macppc/dev/openpic.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: openpic.c,v 1.30 2005/09/30 19:51:52 deraadt Exp $ */
+/* $OpenBSD: openpic.c,v 1.31 2005/10/09 03:50:11 drahn Exp $ */
/*-
* Copyright (c) 1995 Per Fogelstrom
@@ -463,8 +463,13 @@ openpic_do_pending_int()
hwpend &= ~(1L << irq);
ih = o_intrhand[irq];
while(ih) {
+ ppc_intr_enable(1);
+
if ((*ih->ih_fun)(ih->ih_arg))
ih->ih_count.ec_count++;
+
+ (void)ppc_intr_disable();
+
ih = ih->ih_next;
}
}