Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-28 Thread Denys Vlasenko
On Wednesday 26 June 2013 18:59, Ralf Baechle wrote: > On Wed, Jun 26, 2013 at 06:14:52PM +0200, Oleg Nesterov wrote: > > > Or simply remove the BUG_ON(), this can equally confuse wait(status). > > 128 & 0x7f == 0. > > > > Still I think it would be better to change _NSIG on mips. > > If it was t

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-28 Thread Oleg Nesterov
On 06/28, James Hogan wrote: > > On 26/06/13 18:15, Oleg Nesterov wrote: > > > > I meant the minimal hack like > > > > --- x/arch/mips/include/uapi/asm/signal.h > > +++ x/arch/mips/include/uapi/asm/signal.h > > @@ -11,9 +11,9 @@ > > > > #include > > > > -#define _NSIG

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-28 Thread James Hogan
On 26/06/13 18:15, Oleg Nesterov wrote: > On 06/26, Ralf Baechle wrote: >> >> On Wed, Jun 26, 2013 at 06:14:52PM +0200, Oleg Nesterov wrote: >> >>> Or simply remove the BUG_ON(), this can equally confuse wait(status). >>> 128 & 0x7f == 0. >>> >>> Still I think it would be better to change _NSIG on

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-26 Thread Oleg Nesterov
On 06/26, Ralf Baechle wrote: > > On Wed, Jun 26, 2013 at 06:14:52PM +0200, Oleg Nesterov wrote: > > > Or simply remove the BUG_ON(), this can equally confuse wait(status). > > 128 & 0x7f == 0. > > > > Still I think it would be better to change _NSIG on mips. > > If it was that easy. That's going

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-26 Thread Ralf Baechle
On Wed, Jun 26, 2013 at 06:14:52PM +0200, Oleg Nesterov wrote: > Or simply remove the BUG_ON(), this can equally confuse wait(status). > 128 & 0x7f == 0. > > Still I think it would be better to change _NSIG on mips. If it was that easy. That's going to outright break binary compatibility, see k

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-26 Thread Oleg Nesterov
On 06/26, James Hogan wrote: > > On 25/06/13 23:13, James Hogan wrote: > BUG_ON(exit_code & 0x80); /* core dumps don't get here */ > > As a quick fix, mask out higher bits in the signal number. This > effectively matches the exit code from other code paths but avoids the > BUG_ON. > > Signed-off

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-26 Thread Ralf Baechle
On Wed, Jun 26, 2013 at 12:07:44PM +0100, James Hogan wrote: > > IMO changing the ABI by reducing _NSIG to 127 or 126 isn't appropriate > > for stable. > > How does this look for a nasty/stable fix? > diff --git a/kernel/signal.c b/kernel/signal.c > index 113411b..9ea8f4f 100644 > --- a/kernel/s

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-26 Thread James Hogan
On 25/06/13 23:13, James Hogan wrote: > On 25 June 2013 22:40, Andrew Morton wrote: >> Meanwhile, unprivileged users can make a MIPS kernel go BUG. >> >> How much of a problem is this? Obviously less of a problem with MIPS >> than it would be with some other CPU types, but I'd imagine it's still

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-25 Thread James Hogan
On 25 June 2013 22:40, Andrew Morton wrote: > On Mon, 24 Jun 2013 10:10:08 +0100 James Hogan wrote: > >> On 22/06/13 20:09, Oleg Nesterov wrote: >> > On 06/21, David Daney wrote: >> >> I am proposing that we just reduce the number of usable signals such >> >> that existing libc status checking ma

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-25 Thread Andrew Morton
On Mon, 24 Jun 2013 10:10:08 +0100 James Hogan wrote: > On 22/06/13 20:09, Oleg Nesterov wrote: > > On 06/21, David Daney wrote: > >> I am proposing that we just reduce the number of usable signals such > >> that existing libc status checking macros/functions don't change in any > >> way. > > >

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-24 Thread James Hogan
On 21/06/13 16:59, David Daney wrote: > On 06/21/2013 06:39 AM, James Hogan wrote: >> MIPS has 128 signals, the highest of which has the number 128 (they >> start from 1). The following command causes get_signal_to_deliver() to >> pass this signal number straight through to do_group_exit() as the e

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-24 Thread James Hogan
On 22/06/13 20:09, Oleg Nesterov wrote: > On 06/21, David Daney wrote: >> I am proposing that we just reduce the number of usable signals such >> that existing libc status checking macros/functions don't change in any >> way. > > And I fully agree! Absolutely, sorry for confusion. > > > What I t

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-22 Thread Oleg Nesterov
On 06/21, David Daney wrote: > > On 06/21/2013 01:22 PM, Oleg Nesterov wrote: >> On 06/21, David Daney wrote: >>> >>> On 06/21/2013 06:39 AM, James Hogan wrote: Therefore add sig_to_exitcode() and exitcode_to_sig() functions which map signal numbers > 126 to exit code 126 and puts the rem

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-21 Thread David Daney
On 06/21/2013 01:22 PM, Oleg Nesterov wrote: On 06/21, David Daney wrote: On 06/21/2013 06:39 AM, James Hogan wrote: Therefore add sig_to_exitcode() and exitcode_to_sig() functions which map signal numbers > 126 to exit code 126 and puts the remainder (i.e. sig - 126) in higher bits. This allo

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-21 Thread Oleg Nesterov
On 06/21, David Daney wrote: > > On 06/21/2013 06:39 AM, James Hogan wrote: >> Therefore add sig_to_exitcode() and exitcode_to_sig() functions which >> map signal numbers > 126 to exit code 126 and puts the remainder (i.e. >> sig - 126) in higher bits. This allows WIFSIGNALED() to return true for >

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-21 Thread Ralf Baechle
On Fri, Jun 21, 2013 at 08:59:32AM -0700, David Daney wrote: > On 06/21/2013 06:39 AM, James Hogan wrote: > >MIPS has 128 signals, the highest of which has the number 128 (they > >start from 1). The following command causes get_signal_to_deliver() to > >pass this signal number straight through to

Re: [PATCH v3] kernel/signal.c: fix BUG_ON with SIG128 (MIPS)

2013-06-21 Thread David Daney
On 06/21/2013 06:39 AM, James Hogan wrote: MIPS has 128 signals, the highest of which has the number 128 (they start from 1). The following command causes get_signal_to_deliver() to pass this signal number straight through to do_group_exit() as the exit code: strace sleep 10 & sleep 1 && kill