diff options
| author | 2007-02-06 18:42:37 +0000 | |
|---|---|---|
| committer | 2007-02-06 18:42:37 +0000 | |
| commit | 42c116588f9e9188061d40073983e173d36350a2 (patch) | |
| tree | 30b179f9373af56b3dfdbf44d8ea337d36d44145 /sys/compat/linux/linux_misc.c | |
| parent | one more epoch -> Epoch and a grammar fix; ok millert (diff) | |
| download | wireguard-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.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))) |
