Change improper locking assertion in mge

Assertion used here was invalid. If current thread helds any of locks,
we never want to recurse on them.

Obtained from:  Semihalf
Submitted by:   Bartosz Szczepanek <bsz@semihalf.com>
Differential revision: https://reviews.freebsd.org/D3903
This commit is contained in:
Zbigniew Bodek 2015-10-25 22:17:10 +00:00
parent 5420071d39
commit 446892110d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=289948

View File

@ -137,10 +137,8 @@ struct mge_softc {
#define MGE_RECEIVE_LOCK_ASSERT(sc) mtx_assert(&(sc)->receive_lock, MA_OWNED)
#define MGE_GLOBAL_LOCK(sc) do { \
if ((mtx_owned(&(sc)->transmit_lock) ? 1 : 0) != \
(mtx_owned(&(sc)->receive_lock) ? 1 : 0)) { \
panic("mge deadlock possibility detection!"); \
} \
mtx_assert(&(sc)->transmit_lock, MA_NOTOWNED); \
mtx_assert(&(sc)->receive_lock, MA_NOTOWNED); \
mtx_lock(&(sc)->transmit_lock); \
mtx_lock(&(sc)->receive_lock); \
} while (0)