aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2006-01-18 20:44:03 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-18 22:20:30 -0500
commit36a7878a224c18aa4a5e098dc93d19cf5601462b (patch)
tree25b6339902dc1a517da33f631021e90b34456e99
parent2fc10620e741153329e2f1cbcde76e526f501410 (diff)
[PATCH] uml: use generic sys_rt_sigsuspend
Use the generic sys_rt_sigsuspend. Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--arch/um/kernel/signal_kern.c24
-rw-r--r--include/asm-um/unistd.h1
2 files changed, 1 insertions, 24 deletions
diff --git a/arch/um/kernel/signal_kern.c b/arch/um/kernel/signal_kern.c
index 7a54708db50c..da17b7541e08 100644
--- a/arch/um/kernel/signal_kern.c
+++ b/arch/um/kernel/signal_kern.c
@@ -185,30 +185,6 @@ long sys_sigsuspend(int history0, int history1, old_sigset_t mask)
185 return -ERESTARTNOHAND; 185 return -ERESTARTNOHAND;
186} 186}
187 187
188long sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize)
189{
190 sigset_t newset;
191
192 /* XXX: Don't preclude handling different sized sigset_t's. */
193 if (sigsetsize != sizeof(sigset_t))
194 return -EINVAL;
195
196 if (copy_from_user(&newset, unewset, sizeof(newset)))
197 return -EFAULT;
198 sigdelsetmask(&newset, ~_BLOCKABLE);
199
200 spin_lock_irq(&current->sighand->siglock);
201 current->saved_sigmask = current->blocked;
202 current->blocked = newset;
203 recalc_sigpending();
204 spin_unlock_irq(&current->sighand->siglock);
205
206 current->state = TASK_INTERRUPTIBLE;
207 schedule();
208 set_thread_flag(TIF_RESTORE_SIGMASK);
209 return -ERESTARTNOHAND;
210}
211
212long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) 188long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss)
213{ 189{
214 return(do_sigaltstack(uss, uoss, PT_REGS_SP(&current->thread.regs))); 190 return(do_sigaltstack(uss, uoss, PT_REGS_SP(&current->thread.regs)));
diff --git a/include/asm-um/unistd.h b/include/asm-um/unistd.h
index 6fdde45cc053..afccfcaa9ea9 100644
--- a/include/asm-um/unistd.h
+++ b/include/asm-um/unistd.h
@@ -34,6 +34,7 @@ extern int um_execve(const char *file, char *const argv[], char *const env[]);
34#define __ARCH_WANT_SYS_SIGPENDING 34#define __ARCH_WANT_SYS_SIGPENDING
35#define __ARCH_WANT_SYS_SIGPROCMASK 35#define __ARCH_WANT_SYS_SIGPROCMASK
36#define __ARCH_WANT_SYS_RT_SIGACTION 36#define __ARCH_WANT_SYS_RT_SIGACTION
37#define __ARCH_WANT_SYS_RT_SIGSUSPEND
37#endif 38#endif
38 39
39#ifdef __KERNEL_SYSCALLS__ 40#ifdef __KERNEL_SYSCALLS__