Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
Pull signal handling cleanups from Al Viro: "This is the first pile; another one will come a bit later and will contain SYSCALL_DEFINE-related patches. - a bunch of signal-related syscalls (both native and compat) unified. - a bunch of compat syscalls switched to COMPAT_SYSCALL_DEFINE (fixing several potential problems with missing argument validation, while we are at it) - a lot of now-pointless wrappers killed - a couple of architectures (cris and hexagon) forgot to save altstack settings into sigframe, even though they used the (uninitialized) values in sigreturn; fixed. - microblaze fixes for delivery of multiple signals arriving at once - saner set of helpers for signal delivery introduced, several architectures switched to using those." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (143 commits) x86: convert to ksignal sparc: convert to ksignal arm: switch to struct ksignal * passing alpha: pass k_sigaction and siginfo_t using ksignal pointer burying unused conditionals make do_sigaltstack() static arm64: switch to generic old sigaction() (compat-only) arm64: switch to generic compat rt_sigaction() arm64: switch compat to generic old sigsuspend arm64: switch to generic compat rt_sigqueueinfo() arm64: switch to generic compat rt_sigpending() arm64: switch to generic compat rt_sigprocmask() arm64: switch to generic sigaltstack sparc: switch to generic old sigsuspend sparc: COMPAT_SYSCALL_DEFINE does all sign-extension as well as SYSCALL_DEFINE sparc: kill sign-extending wrappers for native syscalls kill sparc32_open() sparc: switch to use of generic old sigaction sparc: switch sys_compat_rt_sigaction() to COMPAT_SYSCALL_DEFINE mips: switch to generic sys_fork() and sys_clone() ...
This commit is contained in:
@@ -288,6 +288,14 @@ struct compat_shmid64_ds {
|
||||
compat_ulong_t __unused2;
|
||||
};
|
||||
|
||||
/* MIPS has unusual order of fields in stack_t */
|
||||
typedef struct compat_sigaltstack {
|
||||
compat_uptr_t ss_sp;
|
||||
compat_size_t ss_size;
|
||||
int ss_flags;
|
||||
} compat_stack_t;
|
||||
#define compat_sigaltstack compat_sigaltstack
|
||||
|
||||
static inline int is_compat_task(void)
|
||||
{
|
||||
return test_thread_flag(TIF_32BIT_ADDR);
|
||||
|
@@ -21,4 +21,6 @@
|
||||
#include <asm/sigcontext.h>
|
||||
#include <asm/siginfo.h>
|
||||
|
||||
#define __ARCH_HAS_ODD_SIGACTION
|
||||
|
||||
#endif /* _ASM_SIGNAL_H */
|
||||
|
@@ -20,10 +20,10 @@
|
||||
#define save_static_function(symbol) \
|
||||
__asm__( \
|
||||
".text\n\t" \
|
||||
".globl\t" #symbol "\n\t" \
|
||||
".globl\t__" #symbol "\n\t" \
|
||||
".align\t2\n\t" \
|
||||
".type\t" #symbol ", @function\n\t" \
|
||||
".ent\t" #symbol ", 0\n" \
|
||||
".type\t__" #symbol ", @function\n\t" \
|
||||
".ent\t__" #symbol ", 0\n__" \
|
||||
#symbol":\n\t" \
|
||||
".frame\t$29, 0, $31\n\t" \
|
||||
"sw\t$16,"__str(PT_R16)"($29)\t\t\t# save_static_function\n\t" \
|
||||
@@ -35,9 +35,9 @@ __asm__( \
|
||||
"sw\t$22,"__str(PT_R22)"($29)\n\t" \
|
||||
"sw\t$23,"__str(PT_R23)"($29)\n\t" \
|
||||
"sw\t$30,"__str(PT_R30)"($29)\n\t" \
|
||||
"j\t_" #symbol "\n\t" \
|
||||
".end\t" #symbol "\n\t" \
|
||||
".size\t" #symbol",. - " #symbol)
|
||||
"j\t" #symbol "\n\t" \
|
||||
".end\t__" #symbol "\n\t" \
|
||||
".size\t__" #symbol",. - __" #symbol)
|
||||
|
||||
#define nabi_no_regargs
|
||||
|
||||
@@ -48,10 +48,10 @@ __asm__( \
|
||||
#define save_static_function(symbol) \
|
||||
__asm__( \
|
||||
".text\n\t" \
|
||||
".globl\t" #symbol "\n\t" \
|
||||
".globl\t__" #symbol "\n\t" \
|
||||
".align\t2\n\t" \
|
||||
".type\t" #symbol ", @function\n\t" \
|
||||
".ent\t" #symbol ", 0\n" \
|
||||
".type\t__" #symbol ", @function\n\t" \
|
||||
".ent\t__" #symbol ", 0\n__" \
|
||||
#symbol":\n\t" \
|
||||
".frame\t$29, 0, $31\n\t" \
|
||||
"sd\t$16,"__str(PT_R16)"($29)\t\t\t# save_static_function\n\t" \
|
||||
@@ -63,9 +63,9 @@ __asm__( \
|
||||
"sd\t$22,"__str(PT_R22)"($29)\n\t" \
|
||||
"sd\t$23,"__str(PT_R23)"($29)\n\t" \
|
||||
"sd\t$30,"__str(PT_R30)"($29)\n\t" \
|
||||
"j\t_" #symbol "\n\t" \
|
||||
".end\t" #symbol "\n\t" \
|
||||
".size\t" #symbol",. - " #symbol)
|
||||
"j\t" #symbol "\n\t" \
|
||||
".end\t__" #symbol "\n\t" \
|
||||
".size\t__" #symbol",. - __" #symbol)
|
||||
|
||||
#define nabi_no_regargs \
|
||||
unsigned long __dummy0, \
|
||||
|
@@ -35,7 +35,6 @@
|
||||
#define __ARCH_WANT_SYS_OLDUMOUNT
|
||||
#define __ARCH_WANT_SYS_SIGPENDING
|
||||
#define __ARCH_WANT_SYS_SIGPROCMASK
|
||||
#define __ARCH_WANT_SYS_RT_SIGACTION
|
||||
# ifdef CONFIG_32BIT
|
||||
# define __ARCH_WANT_STAT64
|
||||
# define __ARCH_WANT_SYS_TIME
|
||||
@@ -43,6 +42,8 @@
|
||||
# ifdef CONFIG_MIPS32_O32
|
||||
# define __ARCH_WANT_COMPAT_SYS_TIME
|
||||
# endif
|
||||
#define __ARCH_WANT_SYS_FORK
|
||||
#define __ARCH_WANT_SYS_CLONE
|
||||
|
||||
/* whitelists for checksyscalls */
|
||||
#define __IGNORE_select
|
||||
|
Reference in New Issue
Block a user