diff options
Diffstat (limited to 'kernel/compat.c')
-rw-r--r-- | kernel/compat.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/compat.c b/kernel/compat.c index fc9eb093acd..e2435ee9993 100644 --- a/kernel/compat.c +++ b/kernel/compat.c | |||
@@ -158,6 +158,7 @@ int put_compat_timespec(const struct timespec *ts, struct compat_timespec __user | |||
158 | __put_user(ts->tv_sec, &cts->tv_sec) || | 158 | __put_user(ts->tv_sec, &cts->tv_sec) || |
159 | __put_user(ts->tv_nsec, &cts->tv_nsec)) ? -EFAULT : 0; | 159 | __put_user(ts->tv_nsec, &cts->tv_nsec)) ? -EFAULT : 0; |
160 | } | 160 | } |
161 | EXPORT_SYMBOL_GPL(put_compat_timespec); | ||
161 | 162 | ||
162 | static long compat_nanosleep_restart(struct restart_block *restart) | 163 | static long compat_nanosleep_restart(struct restart_block *restart) |
163 | { | 164 | { |
@@ -890,6 +891,7 @@ sigset_from_compat (sigset_t *set, compat_sigset_t *compat) | |||
890 | case 1: set->sig[0] = compat->sig[0] | (((long)compat->sig[1]) << 32 ); | 891 | case 1: set->sig[0] = compat->sig[0] | (((long)compat->sig[1]) << 32 ); |
891 | } | 892 | } |
892 | } | 893 | } |
894 | EXPORT_SYMBOL_GPL(sigset_from_compat); | ||
893 | 895 | ||
894 | asmlinkage long | 896 | asmlinkage long |
895 | compat_sys_rt_sigtimedwait (compat_sigset_t __user *uthese, | 897 | compat_sys_rt_sigtimedwait (compat_sigset_t __user *uthese, |
@@ -991,11 +993,8 @@ asmlinkage long compat_sys_rt_sigsuspend(compat_sigset_t __user *unewset, compat | |||
991 | sigset_from_compat(&newset, &newset32); | 993 | sigset_from_compat(&newset, &newset32); |
992 | sigdelsetmask(&newset, sigmask(SIGKILL)|sigmask(SIGSTOP)); | 994 | sigdelsetmask(&newset, sigmask(SIGKILL)|sigmask(SIGSTOP)); |
993 | 995 | ||
994 | spin_lock_irq(¤t->sighand->siglock); | ||
995 | current->saved_sigmask = current->blocked; | 996 | current->saved_sigmask = current->blocked; |
996 | current->blocked = newset; | 997 | set_current_blocked(&newset); |
997 | recalc_sigpending(); | ||
998 | spin_unlock_irq(¤t->sighand->siglock); | ||
999 | 998 | ||
1000 | current->state = TASK_INTERRUPTIBLE; | 999 | current->state = TASK_INTERRUPTIBLE; |
1001 | schedule(); | 1000 | schedule(); |