summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2008-11-04 14:28:25 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2008-11-04 14:28:25 +0000
commit6ec99456dbf6311cbc9e75ecf264108b1a8a350f (patch)
treefe4701842842c3afe01783efafc6dac63aaa6cdc /sys/arch
parent33056b5e06726f76b0a697a60e98d251795cbda6 (diff)
missing setipl in the 'busy processing soft interrupts state'
causes high priority interrupts to be delayed until that state is cleared.
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/macppc/dev/openpic.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/arch/macppc/dev/openpic.c b/sys/arch/macppc/dev/openpic.c
index 87a55be21dc..98d092496f5 100644
--- a/sys/arch/macppc/dev/openpic.c
+++ b/sys/arch/macppc/dev/openpic.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: openpic.c,v 1.50 2008/09/19 01:49:54 drahn Exp $ */
+/* $OpenBSD: openpic.c,v 1.51 2008/11/04 14:28:24 drahn Exp $ */
/*-
* Copyright (c) 2008 Dale Rahn <drahn@openbsd.org>
@@ -453,6 +453,8 @@ openpic_do_pending_int(int pcpl)
s = ppc_intr_disable();
if (ci->ci_iactive & CI_IACTIVE_PROCESSING_SOFT) {
+ /* soft interrupts are being processed, just set ipl/return */
+ openpic_setipl(pcpl);
ppc_intr_enable(s);
return;
}