aboutsummaryrefslogtreecommitdiffstats
path: root/fs/eventpoll.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/eventpoll.c')
-rw-r--r--fs/eventpoll.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index 4c74c768ae43..0f9c073d78d5 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -2313,19 +2313,17 @@ SYSCALL_DEFINE6(epoll_pwait, int, epfd, struct epoll_event __user *, events,
2313 size_t, sigsetsize) 2313 size_t, sigsetsize)
2314{ 2314{
2315 int error; 2315 int error;
2316 sigset_t ksigmask, sigsaved;
2317 2316
2318 /* 2317 /*
2319 * If the caller wants a certain signal mask to be set during the wait, 2318 * If the caller wants a certain signal mask to be set during the wait,
2320 * we apply it here. 2319 * we apply it here.
2321 */ 2320 */
2322 error = set_user_sigmask(sigmask, &ksigmask, &sigsaved, sigsetsize); 2321 error = set_user_sigmask(sigmask, sigsetsize);
2323 if (error) 2322 if (error)
2324 return error; 2323 return error;
2325 2324
2326 error = do_epoll_wait(epfd, events, maxevents, timeout); 2325 error = do_epoll_wait(epfd, events, maxevents, timeout);
2327 2326 restore_saved_sigmask_unless(error == -EINTR);
2328 restore_user_sigmask(sigmask, &sigsaved, error == -EINTR);
2329 2327
2330 return error; 2328 return error;
2331} 2329}
@@ -2338,19 +2336,17 @@ COMPAT_SYSCALL_DEFINE6(epoll_pwait, int, epfd,
2338 compat_size_t, sigsetsize) 2336 compat_size_t, sigsetsize)
2339{ 2337{
2340 long err; 2338 long err;
2341 sigset_t ksigmask, sigsaved;
2342 2339
2343 /* 2340 /*
2344 * If the caller wants a certain signal mask to be set during the wait, 2341 * If the caller wants a certain signal mask to be set during the wait,
2345 * we apply it here. 2342 * we apply it here.
2346 */ 2343 */
2347 err = set_compat_user_sigmask(sigmask, &ksigmask, &sigsaved, sigsetsize); 2344 err = set_compat_user_sigmask(sigmask, sigsetsize);
2348 if (err) 2345 if (err)
2349 return err; 2346 return err;
2350 2347
2351 err = do_epoll_wait(epfd, events, maxevents, timeout); 2348 err = do_epoll_wait(epfd, events, maxevents, timeout);
2352 2349 restore_saved_sigmask_unless(err == -EINTR);
2353 restore_user_sigmask(sigmask, &sigsaved, err == -EINTR);
2354 2350
2355 return err; 2351 return err;
2356} 2352}