aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorOleksandr Tymoshenko <gonzo@FreeBSD.org>2008-07-18 13:57:05 +0000
committerOleksandr Tymoshenko <gonzo@FreeBSD.org>2008-07-18 13:57:05 +0000
commit194af8a8c32e3272b6285c0afba4ffcacbeebe57 (patch)
tree995355f5d438c622f120e37e2a9c8baa3f6f1ae3 /sys/kern
parent99cf36cd3741c005106d372c72835449ad614058 (diff)
Notes
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/sysv_sem.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/kern/sysv_sem.c b/sys/kern/sysv_sem.c
index a2966ad7bc69..20e4d6965183 100644
--- a/sys/kern/sysv_sem.c
+++ b/sys/kern/sysv_sem.c
@@ -1193,6 +1193,13 @@ semop(td, uap)
}
/*
+ * Renew the semaphore's pointer after wakeup since
+ * during msleep sem_base may have been modified and semptr
+ * is not valid any more
+ */
+ semptr = &semakptr->u.sem_base[sopptr->sem_num];
+
+ /*
* The semaphore is still alive. Readjust the count of
* waiting processes.
*/