linux-mips
[Top] [All Lists]

Re: [PATCH] Fix breakage in MIPS siginfo handling

To: David Howells <dhowells@redhat.com>
Subject: Re: [PATCH] Fix breakage in MIPS siginfo handling
From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Tue, 19 Mar 2013 15:05:30 +0000
Cc: linux-mips@linux-mips.org, stable@vger.kernel.org, linux-kernel@vger.kernel.org, Ralf Baechle <ralf@linux-mips.org>
In-reply-to: <20130319150053.32135.61438.stgit@warthog.procyon.org.uk>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
References: <20130319150053.32135.61438.stgit@warthog.procyon.org.uk>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.21 (2010-09-15)
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@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: Al Viro <viro@ZenIV.linux.org.uk>
> cc: Ralf Baechle <ralf@linux-mips.org>
> cc: linux-mips@linux-mips.org
> cc: stable@vger.kernel.org

ACKed-by: Al Viro <viro@zeniv.linux.org.uk>

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...

<Prev in Thread] Current Thread [Next in Thread>