svn commit: r218272 - head/sys/kern
John Baldwin
jhb at FreeBSD.org
Fri Feb 4 14:16:41 UTC 2011
Author: jhb
Date: Fri Feb 4 14:16:41 2011
New Revision: 218272
URL: http://svn.freebsd.org/changeset/base/218272
Log:
Always assert that the turnstile chain lock is held in turnstile_wait()
and remove a duplicate hash lookup.
MFC after: 1 week
Modified:
head/sys/kern/subr_turnstile.c
Modified: head/sys/kern/subr_turnstile.c
==============================================================================
--- head/sys/kern/subr_turnstile.c Fri Feb 4 14:13:15 2011 (r218271)
+++ head/sys/kern/subr_turnstile.c Fri Feb 4 14:16:41 2011 (r218272)
@@ -685,8 +685,8 @@ turnstile_wait(struct turnstile *ts, str
* turnstile already in use by this lock.
*/
tc = TC_LOOKUP(ts->ts_lockobj);
+ mtx_assert(&tc->tc_lock, MA_OWNED);
if (ts == td->td_turnstile) {
- mtx_assert(&tc->tc_lock, MA_OWNED);
#ifdef TURNSTILE_PROFILING
tc->tc_depth++;
if (tc->tc_depth > tc->tc_max_depth) {
@@ -695,7 +695,6 @@ turnstile_wait(struct turnstile *ts, str
turnstile_max_depth = tc->tc_max_depth;
}
#endif
- tc = TC_LOOKUP(ts->ts_lockobj);
LIST_INSERT_HEAD(&tc->tc_turnstiles, ts, ts_hash);
KASSERT(TAILQ_EMPTY(&ts->ts_pending),
("thread's turnstile has pending threads"));
More information about the svn-src-head
mailing list