summaryrefslogtreecommitdiff
path: root/sys/compat
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>2007-02-06 18:42:38 +0000
committerArtur Grabowski <art@cvs.openbsd.org>2007-02-06 18:42:38 +0000
commit7bcb40987b41efda8dd493434be65ee5d6371643 (patch)
tree226d9329979a1f6cd588e7384676bd9cf8e3560e /sys/compat
parent09e30a1a861156e28f380f5a15736860313eb75d (diff)
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')
-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)))