mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-17 10:26:15 +00:00
Fix assertion, &uc->uc_busy is never zero, the intent is to test the
uc_busy value, and not its address [1]. Remove the single use of the macro, write KASSERT() explicitely in the code of umtxq_sleep_pi(). Submitted by: Eric van Gyzen <eric@vangyzen.net> [1] MFC after: 1 week
This commit is contained in:
parent
50d75c5b57
commit
416be7a1c6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=274478
@ -169,7 +169,6 @@ struct umtxq_chain {
|
||||
};
|
||||
|
||||
#define UMTXQ_LOCKED_ASSERT(uc) mtx_assert(&(uc)->uc_lock, MA_OWNED)
|
||||
#define UMTXQ_BUSY_ASSERT(uc) KASSERT(&(uc)->uc_busy, ("umtx chain is not busy"))
|
||||
|
||||
/*
|
||||
* Don't propagate time-sharing priority, there is a security reason,
|
||||
@ -1478,7 +1477,7 @@ umtxq_sleep_pi(struct umtx_q *uq, struct umtx_pi *pi,
|
||||
KASSERT(td == curthread, ("inconsistent uq_thread"));
|
||||
uc = umtxq_getchain(&uq->uq_key);
|
||||
UMTXQ_LOCKED_ASSERT(uc);
|
||||
UMTXQ_BUSY_ASSERT(uc);
|
||||
KASSERT(uc->uc_busy != 0, ("umtx chain is not busy"));
|
||||
umtxq_insert(uq);
|
||||
mtx_lock_spin(&umtx_lock);
|
||||
if (pi->pi_owner == NULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user