diff options
author | Kanoj Sarcar <kanoj@engr.sgi.com> | 2000-04-27 19:33:59 +0000 |
---|---|---|
committer | Kanoj Sarcar <kanoj@engr.sgi.com> | 2000-04-27 19:33:59 +0000 |
commit | 431d1ca27e26122bfe22f60dd9dba9c15169f447 (patch) | |
tree | 8884c756dd3eb722b815395ed5456ce313f7398a /arch/mips64/kernel/signal32.c | |
parent | 866af03bbb30a1abb8369b0903681521aabf6b43 (diff) |
sigprocmask needs to be 32-bitized.
Diffstat (limited to 'arch/mips64/kernel/signal32.c')
-rw-r--r-- | arch/mips64/kernel/signal32.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/mips64/kernel/signal32.c b/arch/mips64/kernel/signal32.c index 5a611272c..5a1ee45b0 100644 --- a/arch/mips64/kernel/signal32.c +++ b/arch/mips64/kernel/signal32.c @@ -684,6 +684,25 @@ printk("%s: delivering signal.\n", __FUNCTION__); return 0; } +extern asmlinkage int sys_sigprocmask(int how, old_sigset_t *set, + old_sigset_t *oset); + +asmlinkage int sys32_sigprocmask(int how, old_sigset_t32 *set, + old_sigset_t32 *oset) +{ + old_sigset_t s; + int ret; + mm_segment_t old_fs = get_fs(); + + if (set && get_user (s, set)) return -EFAULT; + set_fs (KERNEL_DS); + ret = sys_sigprocmask(how, set ? &s : NULL, oset ? &s : NULL); + set_fs (old_fs); + if (ret) return ret; + if (oset && put_user (s, oset)) return -EFAULT; + return 0; +} + /* Dummies ... */ asmlinkage void sys32_sigpending(void) { panic(__FUNCTION__ " called."); } |