diff options
author | green <green@FreeBSD.org> | 2004-10-09 08:16:37 +0000 |
---|---|---|
committer | green <green@FreeBSD.org> | 2004-10-09 08:16:37 +0000 |
commit | 3a482df790b07b86401eb89593c4ee9290bec3ed (patch) | |
tree | 298f3ae6a71c8eb674b34cf4cc9924a9187accd4 /sys | |
parent | 4f6efacb532c9a9cea559f88ec223444913878db (diff) | |
download | FreeBSD-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.c | 2 |
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); |