svn commit: r189788 - head/sys/kern

Jeff Roberson jeff at FreeBSD.org
Sat Mar 14 04:43:03 PDT 2009


Author: jeff
Date: Sat Mar 14 11:43:02 2009
New Revision: 189788
URL: http://svn.freebsd.org/changeset/base/189788

Log:
   - Call lock_profile_release when we're transitioning a lock to be owned by
     LK_KERNPROC.
  
  Discussed with:		attilio

Modified:
  head/sys/kern/kern_lock.c

Modified: head/sys/kern/kern_lock.c
==============================================================================
--- head/sys/kern/kern_lock.c	Sat Mar 14 11:41:36 2009	(r189787)
+++ head/sys/kern/kern_lock.c	Sat Mar 14 11:43:02 2009	(r189788)
@@ -686,7 +686,8 @@ __lockmgr_args(struct lock *lk, u_int fl
 				lk->lk_recurse--;
 				break;
 			}
-			lock_profile_release_lock(&lk->lock_object);
+			if (tid != LK_KERNPROC)
+				lock_profile_release_lock(&lk->lock_object);
 
 			if (atomic_cmpset_rel_ptr(&lk->lk_lock, tid,
 			    LK_UNLOCKED))
@@ -874,6 +875,7 @@ _lockmgr_disown(struct lock *lk, const c
 	 */
 	if (LK_HOLDER(lk->lk_lock) != tid)
 		return;
+	lock_profile_release_lock(&lk->lock_object);
 	LOCK_LOG_LOCK("XDISOWN", &lk->lock_object, 0, 0, file, line);
 	WITNESS_UNLOCK(&lk->lock_object, LOP_EXCLUSIVE, file, line);
 	TD_LOCKS_DEC(curthread);


More information about the svn-src-head mailing list