diff options
| author | Oleksandr Tymoshenko <gonzo@FreeBSD.org> | 2008-06-19 18:08:42 +0000 |
|---|---|---|
| committer | Oleksandr Tymoshenko <gonzo@FreeBSD.org> | 2008-06-19 18:08:42 +0000 |
| commit | 23c8064e660c02bc5b5ea546694f14a381201bb0 (patch) | |
| tree | eec439d6c836832fe1d99038cca03ced7da00ae7 /sys/kern/sysv_sem.c | |
| parent | 145d2d3ac48a8e1890b286d5c2eb166c25124e6f (diff) | |
Notes
Diffstat (limited to 'sys/kern/sysv_sem.c')
| -rw-r--r-- | sys/kern/sysv_sem.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/kern/sysv_sem.c b/sys/kern/sysv_sem.c index bea78326f889..80d07ba8dc38 100644 --- a/sys/kern/sysv_sem.c +++ b/sys/kern/sysv_sem.c @@ -1167,6 +1167,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. */ |
