From 01c9947a62adca00a83bc64cc57c79259f0dadae Mon Sep 17 00:00:00 2001 From: Manfred Spraul Date: Fri, 23 Dec 2005 23:57:41 +0100 Subject: [PATCH] --- yaml --- r: 15320 b: refs/heads/master c: 6003a93e7bf6c02f33c02976ff364785d4273295 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/ipc/sem.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 679f21f6d3ae..ddeb1a0be42a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a7c2491a13cc72fc09c062e635b9a77ff6bb4a73 +refs/heads/master: 6003a93e7bf6c02f33c02976ff364785d4273295 diff --git a/trunk/ipc/sem.c b/trunk/ipc/sem.c index 19af028a3e38..6a16f8edf2b2 100644 --- a/trunk/ipc/sem.c +++ b/trunk/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. */ + smb_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; }