 2a1486981c
			
		
	
	
	2a1486981c
	
	
	
		
			
			MIPS's siginfo handling has been broken since this commit:
	commit 574c4866e3
	Author: Al Viro <viro@zeniv.linux.org.uk>
	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@redhat.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
		
	
			
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			616 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			616 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * This file is subject to the terms and conditions of the GNU General Public
 | |
|  * License.  See the file "COPYING" in the main directory of this archive
 | |
|  * for more details.
 | |
|  *
 | |
|  * Copyright (C) 1995, 96, 97, 98, 99, 2003 by Ralf Baechle
 | |
|  * Copyright (C) 1999 Silicon Graphics, Inc.
 | |
|  */
 | |
| #ifndef _ASM_SIGNAL_H
 | |
| #define _ASM_SIGNAL_H
 | |
| 
 | |
| #include <uapi/asm/signal.h>
 | |
| 
 | |
| 
 | |
| #ifdef CONFIG_TRAD_SIGNALS
 | |
| #define sig_uses_siginfo(ka)	((ka)->sa.sa_flags & SA_SIGINFO)
 | |
| #else
 | |
| #define sig_uses_siginfo(ka)	(1)
 | |
| #endif
 | |
| 
 | |
| #include <asm/sigcontext.h>
 | |
| #include <asm/siginfo.h>
 | |
| 
 | |
| #define __ARCH_HAS_IRIX_SIGACTION
 | |
| 
 | |
| #endif /* _ASM_SIGNAL_H */
 |