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"));
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"