]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
signal: Define __ARCH_HAS_SA_RESTORER so we know whether to clear sa_restorer
authorBen Hutchings <ben@decadent.org.uk>
Mon, 26 Nov 2012 03:24:19 +0000 (22:24 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 5 Apr 2013 16:26:05 +0000 (09:26 -0700)
Vaguely based on upstream commit 574c4866e33d 'consolidate kernel-side
struct sigaction declarations'.

flush_signal_handlers() needs to know whether sigaction::sa_restorer
is defined, not whether SA_RESTORER is defined.  Define the
__ARCH_HAS_SA_RESTORER macro to indicate this.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
13 files changed:
arch/arm/include/asm/signal.h
arch/avr32/include/asm/signal.h
arch/cris/include/asm/signal.h
arch/h8300/include/asm/signal.h
arch/m32r/include/asm/signal.h
arch/m68k/include/asm/signal.h
arch/mn10300/include/asm/signal.h
arch/powerpc/include/asm/signal.h
arch/s390/include/asm/signal.h
arch/sparc/include/asm/signal.h
arch/x86/include/asm/signal.h
arch/xtensa/include/asm/signal.h
include/uapi/asm-generic/signal.h

index 9a0ea6ab988f0ca973d9bae3d9b2057f03fe768f..7f79136acee80ee545d2a821e6cee5530629c996 100644 (file)
@@ -29,6 +29,7 @@ struct sigaction {
        __sigrestore_t sa_restorer;
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#define __ARCH_HAS_SA_RESTORER
 
 struct k_sigaction {
        struct sigaction sa;
index 9326d182e9e5d8d0f8b0f2511f67299a8f3eb7d3..b65e61afb1eebdf156be3128e3b8e3cfc1132d26 100644 (file)
@@ -29,6 +29,7 @@ struct sigaction {
        __sigrestore_t sa_restorer;
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#define __ARCH_HAS_SA_RESTORER
 
 struct k_sigaction {
        struct sigaction sa;
index c0cb1fd4644c46a35c53d23bb0252e24d407fce8..a7e267cc72d933eefa0d2275717310e20ad61531 100644 (file)
@@ -29,6 +29,7 @@ struct sigaction {
        void (*sa_restorer)(void);
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#define __ARCH_HAS_SA_RESTORER
 
 struct k_sigaction {
        struct sigaction sa;
index 66c81c67e55dd6f8acc08a46c10ed2f9d59782ac..4bf76ac649d955a2fc82242a37f79799ef6e8f82 100644 (file)
@@ -29,6 +29,7 @@ struct sigaction {
        void (*sa_restorer)(void);
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#define __ARCH_HAS_SA_RESTORER
 
 struct k_sigaction {
        struct sigaction sa;
index a5ba4a217fb96cf7aa0c83baa9ad3942239fdddf..04ccbcd90d07f5db36d72ae5bec1cf528ba1f3e2 100644 (file)
@@ -22,6 +22,7 @@ struct sigaction {
        __sigrestore_t sa_restorer;
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#define __ARCH_HAS_SA_RESTORER
 
 struct k_sigaction {
        struct sigaction sa;
index 9c8c46b06b0c550453532a7fde6e0bc4bac787b1..60370da79f632172620a6b66fb3f3858336db68e 100644 (file)
@@ -29,6 +29,7 @@ struct sigaction {
        __sigrestore_t sa_restorer;
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#define __ARCH_HAS_SA_RESTORER
 
 struct k_sigaction {
        struct sigaction sa;
index d280e9780793eb1d012f19ff86842f69182be344..d673860df7e28f12b86ae133cc36924e7eebb682 100644 (file)
@@ -39,6 +39,7 @@ struct sigaction {
        __sigrestore_t sa_restorer;
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#define __ARCH_HAS_SA_RESTORER
 
 struct k_sigaction {
        struct sigaction sa;
index a101637725a2485ba8651cae932f25d68440af78..fbe66c463891417b846864077732eda44eed68f6 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef _ASM_POWERPC_SIGNAL_H
 #define _ASM_POWERPC_SIGNAL_H
 
+#define __ARCH_HAS_SA_RESTORER
 #include <uapi/asm/signal.h>
 
 #endif /* _ASM_POWERPC_SIGNAL_H */
index db7ddfaf5b795facb665ebc22f91c0f72b7a5ba0..639f569545ffddd95708c6c6564cca851aa5802c 100644 (file)
@@ -34,6 +34,7 @@ struct sigaction {
         void (*sa_restorer)(void);
         sigset_t sa_mask;               /* mask last for extensibility */
 };
+#define __ARCH_HAS_SA_RESTORER
 
 struct k_sigaction {
         struct sigaction sa;
index 77b85850d54399b9afe94d7e96d9c0c33828507b..2f0df05578779251949f898de7caa0ff02c2a91b 100644 (file)
@@ -26,5 +26,7 @@ struct k_sigaction {
        void                    __user *ka_restorer;
 };
 
+#define __ARCH_HAS_SA_RESTORER
+
 #endif /* !(__ASSEMBLY__) */
 #endif /* !(__SPARC_SIGNAL_H) */
index 216bf364a7e7098a82962613faba2b6c6f20adca..111d2725acc763840b046893e3bf07786b25696a 100644 (file)
@@ -31,6 +31,9 @@ typedef sigset_t compat_sigset_t;
 #include <uapi/asm/signal.h>
 #ifndef __ASSEMBLY__
 extern void do_notify_resume(struct pt_regs *, void *, __u32);
+
+#define __ARCH_HAS_SA_RESTORER
+
 #ifdef __i386__
 struct old_sigaction {
        __sighandler_t sa_handler;
index 6f586bd90e1862ad90cb8ad6b8b078a9a4af8d86..83e23f448eb3c121d8100860b5064fb6b2337217 100644 (file)
@@ -21,6 +21,7 @@ struct sigaction {
        void (*sa_restorer)(void);
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#define __ARCH_HAS_SA_RESTORER
 
 struct k_sigaction {
        struct sigaction sa;
index 6fae30fd16abc8cba6911d9a3bbb539410edafe5..8cc28508ff6d9cb37bbce8b5c97f970d00342afb 100644 (file)
@@ -93,6 +93,10 @@ typedef unsigned long old_sigset_t;
 
 #include <asm-generic/signal-defs.h>
 
+#ifdef SA_RESTORER
+#define __ARCH_HAS_SA_RESTORER
+#endif
+
 struct sigaction {
        __sighandler_t sa_handler;
        unsigned long sa_flags;