Date: Fri, 4 Feb 2011 14:16:41 +0000 (UTC) From: John Baldwin <jhb@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r218272 - head/sys/kern Message-ID: <201102041416.p14EGfF0086715@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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"));
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201102041416.p14EGfF0086715>