summaryrefslogtreecommitdiff
path: root/kern/lock.c
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2015-08-15 16:43:24 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2015-08-17 15:42:31 +0200
commitbdc9b8583e6336bb3a44a80f10bac8b7b369719c (patch)
tree9fe6a45b74a7ed6ecf7a2316c095f875799e5bfc /kern/lock.c
parent8259090d7394b667fbca4d4b05153e980a39db6b (diff)
kern: disable the simple lock checks while debugging
* kern/lock.c (do_check_simple_locks): New variable. (check_simple_locks): Make check conditional. (check_simple_locks_{en,dis}able): New functions. * kern/lock.h (check_simple_locks_{en,dis}able): New declarations. * ddb/db_trap.c (db_task_trap): Disable simple lock checks.
Diffstat (limited to 'kern/lock.c')
-rw-r--r--kern/lock.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/kern/lock.c b/kern/lock.c
index 3c74fec..d894b06 100644
--- a/kern/lock.c
+++ b/kern/lock.c
@@ -136,9 +136,21 @@ struct simple_locks_info {
void *ra;
} simple_locks_info[NSLINFO];
+int do_check_simple_locks = 1;
+
void check_simple_locks(void)
{
- assert(simple_locks_taken == 0);
+ assert(! do_check_simple_locks || simple_locks_taken == 0);
+}
+
+void check_simple_locks_enable(void)
+{
+ do_check_simple_locks = 1;
+}
+
+void check_simple_locks_disable(void)
+{
+ do_check_simple_locks = 0;
}
/* Need simple lock sanity checking code if simple locks are being