diff --git a/arch/alpha/include/asm/signal.h b/arch/alpha/include/asm/signal.h index 8a1ac28cd56208ea4b9db87740f72f3bf061371b..8c06bd1dfffc951cfce56da3b025163dd1d39a4d 100644 --- a/arch/alpha/include/asm/signal.h +++ b/arch/alpha/include/asm/signal.h @@ -28,9 +28,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; - __sigrestore_t ka_restorer; -}; +#define __ARCH_HAS_KA_RESTORER #include #endif diff --git a/arch/arm/include/asm/signal.h b/arch/arm/include/asm/signal.h index 9a0ea6ab988f0ca973d9bae3d9b2057f03fe768f..58057023ff60a346fa63a08e4ee92749dd6a67e1 100644 --- a/arch/arm/include/asm/signal.h +++ b/arch/arm/include/asm/signal.h @@ -30,9 +30,5 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - #include #endif diff --git a/arch/avr32/include/asm/signal.h b/arch/avr32/include/asm/signal.h index 9326d182e9e5d8d0f8b0f2511f67299a8f3eb7d3..c8858f0cef3d681a5a157e48afa1ae02b9fafda0 100644 --- a/arch/avr32/include/asm/signal.h +++ b/arch/avr32/include/asm/signal.h @@ -30,10 +30,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - #include #undef __HAVE_ARCH_SIG_BITOPS diff --git a/arch/cris/include/asm/signal.h b/arch/cris/include/asm/signal.h index c0cb1fd4644c46a35c53d23bb0252e24d407fce8..b0cd904ecd8af2551e3bcb6cbe785a6223ae30e9 100644 --- a/arch/cris/include/asm/signal.h +++ b/arch/cris/include/asm/signal.h @@ -30,9 +30,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; #include #endif diff --git a/arch/h8300/include/asm/signal.h b/arch/h8300/include/asm/signal.h index 66c81c67e55dd6f8acc08a46c10ed2f9d59782ac..c05f937bb492dfa3d8d6c9c655a900266b596b83 100644 --- a/arch/h8300/include/asm/signal.h +++ b/arch/h8300/include/asm/signal.h @@ -30,10 +30,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - #include #undef __HAVE_ARCH_SIG_BITOPS diff --git a/arch/ia64/include/asm/signal.h b/arch/ia64/include/asm/signal.h index 3a1b20e74c5cda3e2271f2a3f3253690ca93322d..a0d5f00ec8db9b6237155d175d9490181c2ab053 100644 --- a/arch/ia64/include/asm/signal.h +++ b/arch/ia64/include/asm/signal.h @@ -32,10 +32,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - # include # endif /* !__ASSEMBLY__ */ diff --git a/arch/m32r/include/asm/signal.h b/arch/m32r/include/asm/signal.h index a5ba4a217fb96cf7aa0c83baa9ad3942239fdddf..4699405f9f82f37bf266c9105602fc7c29a201cc 100644 --- a/arch/m32r/include/asm/signal.h +++ b/arch/m32r/include/asm/signal.h @@ -23,9 +23,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; #include #undef __HAVE_ARCH_SIG_BITOPS diff --git a/arch/m68k/include/asm/signal.h b/arch/m68k/include/asm/signal.h index 9c8c46b06b0c550453532a7fde6e0bc4bac787b1..1edd5f358c0f82b0e0726b7d92778d483fc07ff8 100644 --- a/arch/m68k/include/asm/signal.h +++ b/arch/m68k/include/asm/signal.h @@ -30,9 +30,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; #include #ifndef CONFIG_CPU_HAS_NO_BITFIELDS diff --git a/arch/mips/include/uapi/asm/signal.h b/arch/mips/include/uapi/asm/signal.h index 770732cb8d0387e6ce692b0eae45d205681608d1..3c85fa07b3d35bdbc3f7c9bea3799d42c6ed16d9 100644 --- a/arch/mips/include/uapi/asm/signal.h +++ b/arch/mips/include/uapi/asm/signal.h @@ -102,10 +102,6 @@ struct sigaction { sigset_t sa_mask; }; -struct k_sigaction { - struct sigaction sa; -}; - /* IRIX compatible stack_t */ typedef struct sigaltstack { void __user *ss_sp; diff --git a/arch/mn10300/include/asm/signal.h b/arch/mn10300/include/asm/signal.h index d280e9780793eb1d012f19ff86842f69182be344..d6f06540acb08c74187f287e9d73ac3aaaad418e 100644 --- a/arch/mn10300/include/asm/signal.h +++ b/arch/mn10300/include/asm/signal.h @@ -40,9 +40,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; #include #endif /* _ASM_SIGNAL_H */ diff --git a/arch/parisc/include/asm/signal.h b/arch/parisc/include/asm/signal.h index 0fdb3c83595236de0cc694d2809157665e3bfc3f..e42e05d69a1d8b11caa265972bde6d2548d5fc92 100644 --- a/arch/parisc/include/asm/signal.h +++ b/arch/parisc/include/asm/signal.h @@ -30,10 +30,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - #include #endif /* !__ASSEMBLY */ diff --git a/arch/powerpc/include/uapi/asm/signal.h b/arch/powerpc/include/uapi/asm/signal.h index e079fb39d5bcfc3952301b0f78b700b3d1988bbf..a1a62469929290005066206e9377247da5fbf02e 100644 --- a/arch/powerpc/include/uapi/asm/signal.h +++ b/arch/powerpc/include/uapi/asm/signal.h @@ -104,10 +104,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - typedef struct sigaltstack { void __user *ss_sp; int ss_flags; diff --git a/arch/s390/include/asm/signal.h b/arch/s390/include/asm/signal.h index db7ddfaf5b795facb665ebc22f91c0f72b7a5ba0..89853592e492a7c9f03ec21ee38325b834f168df 100644 --- a/arch/s390/include/asm/signal.h +++ b/arch/s390/include/asm/signal.h @@ -35,8 +35,4 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - #endif diff --git a/arch/sparc/include/asm/signal.h b/arch/sparc/include/asm/signal.h index 77b85850d54399b9afe94d7e96d9c0c33828507b..e1881856a55c18e9b44fb0ff2618a04ec163b5cd 100644 --- a/arch/sparc/include/asm/signal.h +++ b/arch/sparc/include/asm/signal.h @@ -21,10 +21,7 @@ */ #define SA_STATIC_ALLOC 0x8000 -struct k_sigaction { - struct __new_sigaction sa; - void __user *ka_restorer; -}; +#define __ARCH_HAS_KA_RESTORER #endif /* !(__ASSEMBLY__) */ #endif /* !(__SPARC_SIGNAL_H) */ diff --git a/arch/x86/include/asm/signal.h b/arch/x86/include/asm/signal.h index 216bf364a7e7098a82962613faba2b6c6f20adca..e7cf5005931a863e7ca4f9b226f884c72a19a060 100644 --- a/arch/x86/include/asm/signal.h +++ b/arch/x86/include/asm/signal.h @@ -46,11 +46,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - -#else /* __i386__ */ #endif /* !__i386__ */ #include diff --git a/arch/x86/include/uapi/asm/signal.h b/arch/x86/include/uapi/asm/signal.h index aa7d6ae39e0e9b8629938a408ba3e7f18a5a0fca..e52443fc026bca108b953aacdeff7c05756b7ec3 100644 --- a/arch/x86/include/uapi/asm/signal.h +++ b/arch/x86/include/uapi/asm/signal.h @@ -122,10 +122,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - #endif /* !__i386__ */ typedef struct sigaltstack { diff --git a/arch/xtensa/include/asm/signal.h b/arch/xtensa/include/asm/signal.h index 6f586bd90e1862ad90cb8ad6b8b078a9a4af8d86..fd63b8f46a4b5964eabc92b27a30e73af1211184 100644 --- a/arch/xtensa/include/asm/signal.h +++ b/arch/xtensa/include/asm/signal.h @@ -22,10 +22,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - #include #endif /* __ASSEMBLY__ */ diff --git a/include/linux/signal.h b/include/linux/signal.h index ed1e71f1aac746fdb5b68e76c8d55ce941e19d2b..01451a156ff79adc8b170530e081ee6e74092a23 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -249,6 +249,13 @@ extern void __set_current_blocked(const sigset_t *); extern int show_unhandled_signals; extern int sigsuspend(sigset_t *); +struct k_sigaction { + struct sigaction sa; +#ifdef __ARCH_HAS_KA_RESTORER + __sigrestore_t ka_restorer; +#endif +}; + extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie); extern void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, struct pt_regs *regs, int stepping); extern void exit_signals(struct task_struct *tsk); diff --git a/include/uapi/asm-generic/signal.h b/include/uapi/asm-generic/signal.h index 6fae30fd16abc8cba6911d9a3bbb539410edafe5..21e59f36c61b12e99d2ea1a7d9a07140f804c3f2 100644 --- a/include/uapi/asm-generic/signal.h +++ b/include/uapi/asm-generic/signal.h @@ -102,10 +102,6 @@ struct sigaction { sigset_t sa_mask; /* mask last for extensibility */ }; -struct k_sigaction { - struct sigaction sa; -}; - typedef struct sigaltstack { void __user *ss_sp; int ss_flags;