diff options
| author | christos <christos@NetBSD.org> | 2018-01-07 21:14:38 +0000 |
|---|---|---|
| committer | christos <christos@NetBSD.org> | 2018-01-07 21:14:38 +0000 |
| commit | 74a4b85d23914c4e51d4c6beff3d0a9f3147ca4e (patch) | |
| tree | 640c94634a2b7a4cdcd01dcfbb7335f5e7315e7f /sys/compat/linux/common/linux_signal.c | |
| parent | 118210fb0c7f0ae761cbe0ddd3ba105fa62be03d (diff) | |
Ignore signal 64 for now (go uses it)
XXX: pullup-8
Diffstat (limited to 'sys/compat/linux/common/linux_signal.c')
| -rw-r--r-- | sys/compat/linux/common/linux_signal.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sys/compat/linux/common/linux_signal.c b/sys/compat/linux/common/linux_signal.c index 5e4de41053f..6a949677fa6 100644 --- a/sys/compat/linux/common/linux_signal.c +++ b/sys/compat/linux/common/linux_signal.c @@ -1,4 +1,4 @@ -/* $NetBSD: linux_signal.c,v 1.79 2017/02/20 16:30:41 rin Exp $ */ +/* $NetBSD: linux_signal.c,v 1.80 2018/01/07 21:14:38 christos Exp $ */ /*- * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc. @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_signal.c,v 1.79 2017/02/20 16:30:41 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_signal.c,v 1.80 2018/01/07 21:14:38 christos Exp $"); #define COMPAT_LINUX 1 @@ -346,6 +346,15 @@ linux_sys_rt_sigaction(struct lwp *l, const struct linux_sys_rt_sigaction_args * } sig = SCARG(uap, signum); + /* + * XXX: Linux has 33 realtime signals, the go binary wants to + * reset all of them; nothing else uses the last RT signal, so for + * now ignore it. + */ + if (sig == LINUX__NSIG) { + uprintf("%s: setting signal %d ignored\n", __func__, sig); + sig--; /* back to 63 which is ignored */ + } if (sig < 0 || sig >= LINUX__NSIG) return EINVAL; if (sig > 0 && !linux_to_native_signo[sig]) { |
