summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/subr_witness.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c
index ecba17f..f56b6d5 100644
--- a/sys/kern/subr_witness.c
+++ b/sys/kern/subr_witness.c
@@ -791,7 +791,8 @@ witness_checkorder(struct lock_object *lock, int flags, const char *file,
lock1 = &(*lock_list)->ll_children[(*lock_list)->ll_count - 1];
w1 = lock1->li_lock->lo_witness;
if (w1 == w) {
- if (w->w_same_squawked || (lock->lo_flags & LO_DUPOK))
+ if (w->w_same_squawked || (lock->lo_flags & LO_DUPOK) ||
+ (flags & LOP_DUPOK))
return;
w->w_same_squawked = 1;
printf("acquiring duplicate lock of same type: \"%s\"\n",
OpenPOWER on IntegriCloud