Messages in this thread Patch in this message | | | Date | Fri, 23 Dec 2005 23:57:41 +0100 | From | Manfred Spraul <> | Subject | [PATCH] add missing memory barriers to ipc/sem.c |
| |
Hi Linus,
Two smp_wmb() statements are missing in the sysv sem code: This could cause stack corruptions. The attached patch adds them.
Signed-Off-By: Manfred Spraul <manfred@colorfullife.com> --- 2.6/ipc/sem.c 2005-12-19 01:36:54.000000000 +0100 +++ build-2.6/ipc/sem.c 2005-12-23 23:25:17.000000000 +0100 @@ -381,6 +381,7 @@ /* hands-off: q will disappear immediately after * writing q->status. */ + smb_wmb(); q->status = error; q = n; } else { @@ -461,6 +462,7 @@ 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; } | |