diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2007-05-19 20:33:51 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2007-05-19 20:33:51 +0000 |
commit | c335a0466bbcc58554afda172e71ddeba142858c (patch) | |
tree | 3c99ad962b5e64711002f9d4fc81b1002c621935 /sys/arch/mvme88k | |
parent | d1d03717316dca4efc8d465aadf2eeffe03143ef (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.c | 13 |
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 */ } |