summaryrefslogtreecommitdiffstats
path: root/sys/compat/linux/linux_misc.c
diff options
context:
space:
mode:
authorart <art@openbsd.org>2007-02-06 18:42:37 +0000
committerart <art@openbsd.org>2007-02-06 18:42:37 +0000
commit42c116588f9e9188061d40073983e173d36350a2 (patch)
tree30b179f9373af56b3dfdbf44d8ea337d36d44145 /sys/compat/linux/linux_misc.c
parentone more epoch -> Epoch and a grammar fix; ok millert (diff)
downloadwireguard-openbsd-42c116588f9e9188061d40073983e173d36350a2.tar.xz
wireguard-openbsd-42c116588f9e9188061d40073983e173d36350a2.zip
Use atomic.h operation for manipulating p_siglist in struct proc. Solves
the problem with lost signals in MP kernels. miod@, kettenis@ ok
Diffstat (limited to 'sys/compat/linux/linux_misc.c')
-rw-r--r--sys/compat/linux/linux_misc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c
index cef5a180206..a88eab1f886 100644
--- a/sys/compat/linux/linux_misc.c
+++ b/sys/compat/linux/linux_misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: linux_misc.c,v 1.59 2006/10/08 19:49:57 sturm Exp $ */
+/* $OpenBSD: linux_misc.c,v 1.60 2007/02/06 18:42:37 art Exp $ */
/* $NetBSD: linux_misc.c,v 1.27 1996/05/20 01:59:21 fvdl Exp $ */
/*-
@@ -185,7 +185,7 @@ linux_sys_wait4(p, v, retval)
if ((error = sys_wait4(p, &w4a, retval)))
return error;
- p->p_siglist &= ~sigmask(SIGCHLD);
+ atomic_clearbits_int(&p->p_siglist, sigmask(SIGCHLD));
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))