diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2007-02-06 18:42:38 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2007-02-06 18:42:38 +0000 |
commit | 7bcb40987b41efda8dd493434be65ee5d6371643 (patch) | |
tree | 226d9329979a1f6cd588e7384676bd9cf8e3560e /sys/compat | |
parent | 09e30a1a861156e28f380f5a15736860313eb75d (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.c | 4 |
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))) |