diff options
| -rw-r--r-- | fs/eventpoll.c | 3 | ||||
| -rw-r--r-- | include/uapi/linux/eventpoll.h | 13 | 
2 files changed, 13 insertions, 3 deletions
| diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 79b65c3b9e87..8b5e2584c840 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1852,8 +1852,7 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,  		goto error_tgt_fput;  	/* Check if EPOLLWAKEUP is allowed */ -	if ((epds.events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) -		epds.events &= ~EPOLLWAKEUP; +	ep_take_care_of_epollwakeup(&epds);  	/*  	 * We have to check that the file structure underneath the file descriptor diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index 2c267bcbb85c..bc81fb2e1f0e 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,5 +61,16 @@ struct epoll_event {  	__u64 data;  } EPOLL_PACKED; - +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ +	if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) +		epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ +	epev->events &= ~EPOLLWAKEUP; +} +#endif  #endif /* _UAPI_LINUX_EVENTPOLL_H */ |