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>
27 lines
616 B
C
27 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 */
|