aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/kern_lock.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/kern/kern_lock.c b/sys/kern/kern_lock.c
index 3e1d78fe4887..d4413def1baf 100644
--- a/sys/kern/kern_lock.c
+++ b/sys/kern/kern_lock.c
@@ -198,7 +198,15 @@ _lockmgr(struct lock *lkp, u_int flags, struct mtx *interlkp,
int extflags, lockflags;
int contested = 0;
uint64_t waitstart = 0;
-
+
+ /*
+ * Lock owner can only be curthread or, at least, NULL in order to
+ * have a deadlock free implementation of the primitive.
+ */
+ KASSERT(td == NULL || td == curthread,
+ ("lockmgr: owner thread (%p) cannot differ from curthread or NULL",
+ td));
+
error = 0;
if (td == NULL)
thr = LK_KERNPROC;