On 29 May 2013 18:36, Oleg Nesterov <oleg@xxxxxxxxxx> wrote: > On 05/29, David Daney wrote: >> >> On 05/29/2013 10:01 AM, James Hogan wrote: >>> MIPS has 128 signals, the highest of which has the number 128. The >> >> I wonder if we should change the ABI and reduce the number of signals to >> 127 instead of this patch. > > Same thoughts... I'll give it a try. I wouldn't have thought it'd break anything, but you never know. glibc (incorrectly) sets [__]SIGRTMAX to 127 already. On the other hand uClibc sets it to 128, so anything built against uClibc that uses signals SIGRTMAX-n (where n may be 0) or uses an excessive number of rt signals starting from SIGRTMIN (sounds unlikely) could well need an updated uClibc (or a full rebuild if it's crazy enough to use __SIGRTMAX). >>> @@ -2366,8 +2366,12 @@ relock: >>> >>> /* >>> * Death signals, no core dump. >>> + * >>> + * MIPS has a signal number 128 which clashes with the core dump >>> + * bit. If this was the signal we still want to report a valid >>> + * exit code, so round it down to 127. >>> */ >>> - do_group_exit(info->si_signo); >>> + do_group_exit(min(info->si_signo, 127)); > > This avoids BUG_ON() but obviously fools WIFSIGNALED(), doesn't look > very nice. Agreed. Cheers James