get_compat_sigset()
[linux-2.6-block.git] / fs / eventpoll.c
index 2fabd19cdeea76e32f51f3c84348a22b9fe22843..396a3c075fd42049460c319c70f44a56926d7ca5 100644 (file)
@@ -2259,7 +2259,6 @@ COMPAT_SYSCALL_DEFINE6(epoll_pwait, int, epfd,
                        compat_size_t, sigsetsize)
 {
        long err;
-       compat_sigset_t csigmask;
        sigset_t ksigmask, sigsaved;
 
        /*
@@ -2269,9 +2268,8 @@ COMPAT_SYSCALL_DEFINE6(epoll_pwait, int, epfd,
        if (sigmask) {
                if (sigsetsize != sizeof(compat_sigset_t))
                        return -EINVAL;
-               if (copy_from_user(&csigmask, sigmask, sizeof(csigmask)))
+               if (get_compat_sigset(&ksigmask, sigmask))
                        return -EFAULT;
-               sigset_from_compat(&ksigmask, &csigmask);
                sigsaved = current->blocked;
                set_current_blocked(&ksigmask);
        }