diff options
author | rwatson <rwatson@FreeBSD.org> | 2004-12-23 02:22:47 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2004-12-23 02:22:47 +0000 |
commit | 649bb26a6913613cc6dbb16d7e0f1803382b51b4 (patch) | |
tree | 29f59a17c53c6d8c63cd6b1990fb956dd68faca4 /sys/kern/uipc_sem.c | |
parent | 986c9c7827e348a71481931f6ad36e38abb21dd0 (diff) | |
download | FreeBSD-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/uipc_sem.c')
-rw-r--r-- | sys/kern/uipc_sem.c | 2 |
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); |