diff options
| author | Takashi Iwai <tiwai@suse.de> | 2011-08-08 08:30:29 -0400 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2011-08-08 08:30:29 -0400 |
| commit | 0a2d31b62dba9b5b92a38c67c9cc42630513662a (patch) | |
| tree | f755d74ec85248de645e10c45ed1a2ed467530f6 /kernel/compat.c | |
| parent | 8039290a91c5dc4414093c086987a5d7738fe2fd (diff) | |
| parent | df944f66784e6d4f2f50739263a4947885d8b6ae (diff) | |
Merge branch 'fix/kconfig' into for-linus
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 fc9eb093acd5..e2435ee9993a 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(); |
