diff options
| -rw-r--r-- | arch/um/kernel/signal.c | 10 | ||||
| -rw-r--r-- | arch/x86/Kconfig | 1 | ||||
| -rw-r--r-- | arch/x86/ia32/ia32_signal.c | 7 | ||||
| -rw-r--r-- | arch/x86/include/asm/sys_ia32.h | 1 | ||||
| -rw-r--r-- | arch/x86/include/asm/syscalls.h | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/signal.c | 11 | ||||
| -rw-r--r-- | arch/x86/syscalls/syscall_32.tbl | 2 | ||||
| -rw-r--r-- | arch/x86/um/Kconfig | 1 |
8 files changed, 3 insertions, 31 deletions
diff --git a/arch/um/kernel/signal.c b/arch/um/kernel/signal.c index 48ccf718e290..3e831b3fd07b 100644 --- a/arch/um/kernel/signal.c +++ b/arch/um/kernel/signal.c | |||
| @@ -122,13 +122,3 @@ int do_signal(void) | |||
| 122 | { | 122 | { |
| 123 | return kern_do_signal(¤t->thread.regs); | 123 | return kern_do_signal(¤t->thread.regs); |
| 124 | } | 124 | } |
| 125 | |||
| 126 | /* | ||
| 127 | * Atomically swap in the new signal mask, and wait for a signal. | ||
| 128 | */ | ||
| 129 | long sys_sigsuspend(int history0, int history1, old_sigset_t mask) | ||
| 130 | { | ||
| 131 | sigset_t blocked; | ||
| 132 | siginitset(&blocked, mask); | ||
| 133 | return sigsuspend(&blocked); | ||
| 134 | } | ||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 9f031118f856..5bda2d7f1b69 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
| @@ -116,6 +116,7 @@ config X86 | |||
| 116 | select GENERIC_SIGALTSTACK | 116 | select GENERIC_SIGALTSTACK |
| 117 | select GENERIC_COMPAT_RT_SIGQUEUEINFO | 117 | select GENERIC_COMPAT_RT_SIGQUEUEINFO |
| 118 | select GENERIC_COMPAT_RT_SIGPENDING | 118 | select GENERIC_COMPAT_RT_SIGPENDING |
| 119 | select OLD_SIGSUSPEND3 if X86_32 || IA32_EMULATION | ||
| 119 | 120 | ||
| 120 | config INSTRUCTION_DECODER | 121 | config INSTRUCTION_DECODER |
| 121 | def_bool y | 122 | def_bool y |
diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c index 15fdb3f57d8c..b0460cd7de5a 100644 --- a/arch/x86/ia32/ia32_signal.c +++ b/arch/x86/ia32/ia32_signal.c | |||
| @@ -129,13 +129,6 @@ int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from) | |||
| 129 | return err; | 129 | return err; |
| 130 | } | 130 | } |
| 131 | 131 | ||
| 132 | asmlinkage long sys32_sigsuspend(int history0, int history1, old_sigset_t mask) | ||
| 133 | { | ||
| 134 | sigset_t blocked; | ||
| 135 | siginitset(&blocked, mask); | ||
| 136 | return sigsuspend(&blocked); | ||
| 137 | } | ||
| 138 | |||
| 139 | /* | 132 | /* |
| 140 | * Do a signal return; undo the signal stack. | 133 | * Do a signal return; undo the signal stack. |
| 141 | */ | 134 | */ |
diff --git a/arch/x86/include/asm/sys_ia32.h b/arch/x86/include/asm/sys_ia32.h index e3a893167387..d4c3837f9297 100644 --- a/arch/x86/include/asm/sys_ia32.h +++ b/arch/x86/include/asm/sys_ia32.h | |||
| @@ -66,7 +66,6 @@ asmlinkage long sys32_fallocate(int, int, unsigned, | |||
| 66 | unsigned, unsigned, unsigned); | 66 | unsigned, unsigned, unsigned); |
| 67 | 67 | ||
| 68 | /* ia32/ia32_signal.c */ | 68 | /* ia32/ia32_signal.c */ |
| 69 | asmlinkage long sys32_sigsuspend(int, int, old_sigset_t); | ||
| 70 | asmlinkage long sys32_sigreturn(void); | 69 | asmlinkage long sys32_sigreturn(void); |
| 71 | asmlinkage long sys32_rt_sigreturn(void); | 70 | asmlinkage long sys32_rt_sigreturn(void); |
| 72 | 71 | ||
diff --git a/arch/x86/include/asm/syscalls.h b/arch/x86/include/asm/syscalls.h index f755423a5d02..7ed7dec7fb0e 100644 --- a/arch/x86/include/asm/syscalls.h +++ b/arch/x86/include/asm/syscalls.h | |||
| @@ -34,7 +34,6 @@ asmlinkage int sys_get_thread_area(struct user_desc __user *); | |||
| 34 | #ifdef CONFIG_X86_32 | 34 | #ifdef CONFIG_X86_32 |
| 35 | 35 | ||
| 36 | /* kernel/signal.c */ | 36 | /* kernel/signal.c */ |
| 37 | asmlinkage int sys_sigsuspend(int, int, old_sigset_t); | ||
| 38 | asmlinkage int sys_sigaction(int, const struct old_sigaction __user *, | 37 | asmlinkage int sys_sigaction(int, const struct old_sigaction __user *, |
| 39 | struct old_sigaction __user *); | 38 | struct old_sigaction __user *); |
| 40 | unsigned long sys_sigreturn(void); | 39 | unsigned long sys_sigreturn(void); |
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c index 38ba7e56e161..057712901509 100644 --- a/arch/x86/kernel/signal.c +++ b/arch/x86/kernel/signal.c | |||
| @@ -536,17 +536,6 @@ static int x32_setup_rt_frame(int sig, struct k_sigaction *ka, | |||
| 536 | } | 536 | } |
| 537 | 537 | ||
| 538 | #ifdef CONFIG_X86_32 | 538 | #ifdef CONFIG_X86_32 |
| 539 | /* | ||
| 540 | * Atomically swap in the new signal mask, and wait for a signal. | ||
| 541 | */ | ||
| 542 | asmlinkage int | ||
| 543 | sys_sigsuspend(int history0, int history1, old_sigset_t mask) | ||
| 544 | { | ||
| 545 | sigset_t blocked; | ||
| 546 | siginitset(&blocked, mask); | ||
| 547 | return sigsuspend(&blocked); | ||
| 548 | } | ||
| 549 | |||
| 550 | asmlinkage int | 539 | asmlinkage int |
| 551 | sys_sigaction(int sig, const struct old_sigaction __user *act, | 540 | sys_sigaction(int sig, const struct old_sigaction __user *act, |
| 552 | struct old_sigaction __user *oact) | 541 | struct old_sigaction __user *oact) |
diff --git a/arch/x86/syscalls/syscall_32.tbl b/arch/x86/syscalls/syscall_32.tbl index 9c707c4b4811..fae76a348c73 100644 --- a/arch/x86/syscalls/syscall_32.tbl +++ b/arch/x86/syscalls/syscall_32.tbl | |||
| @@ -78,7 +78,7 @@ | |||
| 78 | 69 i386 ssetmask sys_ssetmask | 78 | 69 i386 ssetmask sys_ssetmask |
| 79 | 70 i386 setreuid sys_setreuid16 | 79 | 70 i386 setreuid sys_setreuid16 |
| 80 | 71 i386 setregid sys_setregid16 | 80 | 71 i386 setregid sys_setregid16 |
| 81 | 72 i386 sigsuspend sys_sigsuspend sys32_sigsuspend | 81 | 72 i386 sigsuspend sys_sigsuspend sys_sigsuspend |
| 82 | 73 i386 sigpending sys_sigpending compat_sys_sigpending | 82 | 73 i386 sigpending sys_sigpending compat_sys_sigpending |
| 83 | 74 i386 sethostname sys_sethostname | 83 | 74 i386 sethostname sys_sethostname |
| 84 | 75 i386 setrlimit sys_setrlimit compat_sys_setrlimit | 84 | 75 i386 setrlimit sys_setrlimit compat_sys_setrlimit |
diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig index 53c90fd412d1..a3725824449e 100644 --- a/arch/x86/um/Kconfig +++ b/arch/x86/um/Kconfig | |||
| @@ -25,6 +25,7 @@ config X86_32 | |||
| 25 | select ARCH_WANT_IPC_PARSE_VERSION | 25 | select ARCH_WANT_IPC_PARSE_VERSION |
| 26 | select MODULES_USE_ELF_REL | 26 | select MODULES_USE_ELF_REL |
| 27 | select CLONE_BACKWARDS | 27 | select CLONE_BACKWARDS |
| 28 | select OLD_SIGSUSPEND3 | ||
| 28 | 29 | ||
| 29 | config X86_64 | 30 | config X86_64 |
| 30 | def_bool 64BIT | 31 | def_bool 64BIT |
