]> git.kernelconcepts.de Git - karo-tx-linux.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 17:16:35 +0000 (10:16 -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/asm-generic/signal.h

index 43ba0fb1c8ad2b774e42041715c1276b226ba7bf..559ee24c9566e8f1e50f4e49d75fb66f8a29beac 100644 (file)
@@ -127,6 +127,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 8790dfc10d5ba25353398a94cd93916ea1fe50a0..e6952a01c5dd1dd0d6c47cf711f8368da9afcdc3 100644 (file)
@@ -128,6 +128,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 ea6af9aad76c25c92d255c842ea95f0aeba27fbe..057fea2db9e9f6eb055527ee28be6ddd411d6b10 100644 (file)
@@ -122,6 +122,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 fd8b66e40dcaa41c726500c66237e2b4b87cc92a..86957072d16b360cad3ff70a28044b4af1ba566f 100644 (file)
@@ -121,6 +121,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 b2eeb0de1c8d337a6d7ab5abef363b4797ab7e9a..802d5616e8eb6377de80be42793d93345c9a802a 100644 (file)
@@ -123,6 +123,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 0b6b0e50f9777f5c2e75b006427b721ed476dcb9..ee80858e0c8ab3e47223413e4884fd2010969eba 100644 (file)
@@ -119,6 +119,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 1865d72a86ff7cc6823a7be07dbbb0f3907e2518..eecaa7693ef1df53bccd0d6ca16afdb1ba241c19 100644 (file)
@@ -131,6 +131,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 3eb13be11d8f6eff81fa251b8ab1c589ed35edce..ec63a0a4e2cdc5655119ca68ca48696d9e86a5e7 100644 (file)
@@ -109,6 +109,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 cdf5cb2fe03f5aa0c2c45765a54536b78d88dde5..c872626346e508018e280503067f893b7ef246df 100644 (file)
@@ -131,6 +131,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 e49b828a2471d57cca8e5aa723acc3a011a9d390..492943173ababca932372e40a538c66d024c59e4 100644 (file)
@@ -191,6 +191,7 @@ struct __old_sigaction {
        unsigned long           sa_flags;
        void                    (*sa_restorer)(void);  /* not used by Linux/SPARC yet */
 };
+#define __ARCH_HAS_SA_RESTORER
 
 typedef struct sigaltstack {
        void                    __user *ss_sp;
index 598457cbd0f80c47e4cf7759e8d3b6c5de048f06..6cbc795b7c5877b68fa39384fd2b4fa88343c9b0 100644 (file)
@@ -125,6 +125,8 @@ typedef unsigned long sigset_t;
 extern void do_notify_resume(struct pt_regs *, void *, __u32);
 # endif /* __KERNEL__ */
 
+#define __ARCH_HAS_SA_RESTORER
+
 #ifdef __i386__
 # ifdef __KERNEL__
 struct old_sigaction {
index 633ba73bc4d21ee924086f903cc75abf8cbeb06d..75edf8a452b6018185af4554096788be47f39cc7 100644 (file)
@@ -133,6 +133,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 555c0aee8a47844c360e3510fc5ec326b434436e..743f7a5dc9a03ea32aac810856d3f5bda65721b5 100644 (file)
@@ -99,6 +99,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;