• D
    Fix breakage in MIPS siginfo handling · 2a148698
    David Howells 提交于
    MIPS's siginfo handling has been broken since this commit:
    
    	commit 574c4866
    	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: NDavid Howells <dhowells@redhat.com>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org
    Acked-by: NAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
    2a148698
compat.h 25.0 KB