Author: markj
Date: Tue Aug  8 19:47:11 2017
New Revision: 322273
URL: https://svnweb.freebsd.org/changeset/base/322273

Log:
  MFC r321884, r321896:
  Fix a witness assertion that fires when a lock type's class changes.

Modified:
  stable/11/sys/kern/subr_witness.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/subr_witness.c
==============================================================================
--- stable/11/sys/kern/subr_witness.c   Tue Aug  8 19:36:34 2017        
(r322272)
+++ stable/11/sys/kern/subr_witness.c   Tue Aug  8 19:47:11 2017        
(r322273)
@@ -1850,12 +1850,14 @@ enroll(const char *description, struct lock_class *loc
        return (w);
 found:
        w->w_refcount++;
+       if (w->w_refcount == 1)
+               w->w_class = lock_class;
        mtx_unlock_spin(&w_mtx);
        if (lock_class != w->w_class)
                kassert_panic(
-                       "lock (%s) %s does not match earlier (%s) lock",
-                       description, lock_class->lc_name,
-                       w->w_class->lc_name);
+                   "lock (%s) %s does not match earlier (%s) lock",
+                   description, lock_class->lc_name,
+                   w->w_class->lc_name);
        return (w);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to