summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2004-12-23 02:22:47 +0000
committerrwatson <rwatson@FreeBSD.org>2004-12-23 02:22:47 +0000
commit649bb26a6913613cc6dbb16d7e0f1803382b51b4 (patch)
tree29f59a17c53c6d8c63cd6b1990fb956dd68faca4 /sys/kern
parent986c9c7827e348a71481931f6ad36e38abb21dd0 (diff)
downloadFreeBSD-src-649bb26a6913613cc6dbb16d7e0f1803382b51b4.zip
FreeBSD-src-649bb26a6913613cc6dbb16d7e0f1803382b51b4.tar.gz
Assert the sem lock in sem_ref() and sem_rel(), as it is required to
safely manipulate the reference count.
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/uipc_sem.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/uipc_sem.c b/sys/kern/uipc_sem.c
index 48c954d..c92c745 100644
--- a/sys/kern/uipc_sem.c
+++ b/sys/kern/uipc_sem.c
@@ -131,6 +131,7 @@ void
sem_ref(struct ksem *ks)
{
+ mtx_assert(&sem_lock, MA_OWNED);
ks->ks_ref++;
DP(("sem_ref: ks = %p, ref = %d\n", ks, ks->ks_ref));
}
@@ -140,6 +141,7 @@ void
sem_rel(struct ksem *ks)
{
+ mtx_assert(&sem_lock, MA_OWNED);
DP(("sem_rel: ks = %p, ref = %d\n", ks, ks->ks_ref - 1));
if (--ks->ks_ref == 0)
sem_free(ks);
OpenPOWER on IntegriCloud