diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2006-01-03 10:58:53 -0500 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2006-01-03 10:58:53 -0500 |
| commit | a18ceba7b40e24a9da87249bd74f16ea5abd6894 (patch) | |
| tree | 5ce615d345e720ddabf95c46fb62287ee763ad4e /ipc | |
| parent | aaadff81195056c7c14e0d834b3318c624c0fd78 (diff) | |
| parent | 88026842b0a760145aa71d69e74fbc9ec118ca44 (diff) | |
Merge branch 'master'
Diffstat (limited to 'ipc')
| -rw-r--r-- | ipc/sem.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/ipc/sem.c b/ipc/sem.c index 19af028a3e38..cb5bb2a5df96 100644 --- a/ipc/sem.c +++ b/ipc/sem.c @@ -381,6 +381,7 @@ static void update_queue (struct sem_array * sma) /* hands-off: q will disappear immediately after * writing q->status. */ + smp_wmb(); q->status = error; q = n; } else { @@ -461,6 +462,7 @@ static void freeary (struct sem_array *sma, int id) n = q->next; q->status = IN_WAKEUP; wake_up_process(q->sleeper); /* doesn't sleep */ + smp_wmb(); q->status = -EIDRM; /* hands-off q */ q = n; } |
