summaryrefslogtreecommitdiff
path: root/sys/arch/mvme88k
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2007-05-19 20:33:51 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2007-05-19 20:33:51 +0000
commitc335a0466bbcc58554afda172e71ddeba142858c (patch)
tree3c99ad962b5e64711002f9d4fc81b1002c621935 /sys/arch/mvme88k
parentd1d03717316dca4efc8d465aadf2eeffe03143ef (diff)
Force other processors to spin when one is in ddb.
Diffstat (limited to 'sys/arch/mvme88k')
-rw-r--r--sys/arch/mvme88k/mvme88k/m188_machdep.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/arch/mvme88k/mvme88k/m188_machdep.c b/sys/arch/mvme88k/mvme88k/m188_machdep.c
index 1c030dea0bf..b4150e6cc55 100644
--- a/sys/arch/mvme88k/mvme88k/m188_machdep.c
+++ b/sys/arch/mvme88k/mvme88k/m188_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: m188_machdep.c,v 1.30 2007/05/19 17:03:49 miod Exp $ */
+/* $OpenBSD: m188_machdep.c,v 1.31 2007/05/19 20:33:50 miod Exp $ */
/*
* Copyright (c) 1998, 1999, 2000, 2001 Steve Murphree, Jr.
* Copyright (c) 1996 Nivas Madhur
@@ -362,6 +362,17 @@ m188_ipi_handler(struct trapframe *eframe)
int ipi = ci->ci_ipi;
int spl = m188_curspl[ci->ci_cpuid];
+ if (ipi & CI_IPI_DDB) {
+#ifdef DDB
+ /*
+ * Another processor has entered DDB. Spin on the ddb lock
+ * until it is done.
+ */
+ extern struct __mp_lock ddb_mp_lock;
+ __mp_lock(&ddb_mp_lock);
+ __mp_unlock(&ddb_mp_lock);
+#endif
+ }
if (ipi & CI_IPI_NOTIFY) {
/* nothing to do */
}