On Tue, Mar 19, 2013 at 03:00:53PM +0000, David Howells wrote: > MIPS's siginfo handling has been broken since this commit: > > commit 574c4866e33d648520a8bd5bf6f573ea6e554e88 > Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx> > Date: Sun Nov 25 22:24:19 2012 -0500 > consolidate kernel-side struct sigaction declarations > > for 64-bit BE MIPS CPUs. > > The UAPI variant looks like this: > > struct sigaction { > unsigned int sa_flags; > __sighandler_t sa_handler; > sigset_t sa_mask; > }; > > but the core kernel's variant looks like this: > > struct sigaction { > #ifndef __ARCH_HAS_ODD_SIGACTION > __sighandler_t sa_handler; > unsigned long sa_flags; > #else > unsigned long sa_flags; > __sighandler_t sa_handler; > #endif > #ifdef __ARCH_HAS_SA_RESTORER > __sigrestore_t sa_restorer; > #endif > sigset_t sa_mask; > }; > > The problem is that sa_flags has been changed from an unsigned int to an > unsigned long. > > Fix this by making sa_flags unsigned int if __ARCH_HAS_ODD_SIGACTION is > defined. > > Whilst we're at it, rename __ARCH_HAS_ODD_SIGACTION to > __ARCH_HAS_IRIX_SIGACTION. > > Signed-off-by: David Howells <dhowells@xxxxxxxxxx> > cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> > cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> > cc: linux-mips@xxxxxxxxxxxxxx > cc: stable@xxxxxxxxxxxxxxx ACKed-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> but I think it should go via mips tree (or straight to Linus, for that matter). I can apply it in signal.git and push it to Linus today, though...