summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorgreen <green@FreeBSD.org>2004-10-09 08:16:37 +0000
committergreen <green@FreeBSD.org>2004-10-09 08:16:37 +0000
commit3a482df790b07b86401eb89593c4ee9290bec3ed (patch)
tree298f3ae6a71c8eb674b34cf4cc9924a9187accd4 /sys
parent4f6efacb532c9a9cea559f88ec223444913878db (diff)
downloadFreeBSD-src-3a482df790b07b86401eb89593c4ee9290bec3ed.zip
FreeBSD-src-3a482df790b07b86401eb89593c4ee9290bec3ed.tar.gz
Don't "implicitly order all sleep locks before spin locks" in witness
when the spin lock in question isn't -- it's the critical_enter() that KDB set. No more panic in DDB for console -> syscons -> tty -> knote operations.
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/subr_witness.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c
index 0a2dda6..3fcaf2f 100644
--- a/sys/kern/subr_witness.c
+++ b/sys/kern/subr_witness.c
@@ -711,7 +711,7 @@ witness_checkorder(struct lock_object *lock, int flags, const char *file,
* implicitly enforces a lock order of all sleep locks before
* all spin locks.
*/
- if (td->td_critnest != 0)
+ if (td->td_critnest != 0 && !kdb_active)
panic("blockable sleep lock (%s) %s @ %s:%d",
class->lc_name, lock->lo_name, file, line);
OpenPOWER on IntegriCloud