diff options
Diffstat (limited to 'net/dccp/proto.c')
| -rw-r--r-- | net/dccp/proto.c | 13 | 
1 files changed, 11 insertions, 2 deletions
diff --git a/net/dccp/proto.c b/net/dccp/proto.c index ca21c1c76da0..0d56e36a6db7 100644 --- a/net/dccp/proto.c +++ b/net/dccp/proto.c @@ -312,11 +312,20 @@ int dccp_disconnect(struct sock *sk, int flags)  EXPORT_SYMBOL_GPL(dccp_disconnect); -__poll_t dccp_poll_mask(struct socket *sock, __poll_t events) +/* + *	Wait for a DCCP event. + * + *	Note that we don't need to lock the socket, as the upper poll layers + *	take care of normal races (between the test and the event) and we don't + *	go look at any of the socket buffers directly. + */ +__poll_t dccp_poll(struct file *file, struct socket *sock, +		       poll_table *wait)  {  	__poll_t mask;  	struct sock *sk = sock->sk; +	sock_poll_wait(file, sk_sleep(sk), wait);  	if (sk->sk_state == DCCP_LISTEN)  		return inet_csk_listen_poll(sk); @@ -358,7 +367,7 @@ __poll_t dccp_poll_mask(struct socket *sock, __poll_t events)  	return mask;  } -EXPORT_SYMBOL_GPL(dccp_poll_mask); +EXPORT_SYMBOL_GPL(dccp_poll);  int dccp_ioctl(struct sock *sk, int cmd, unsigned long arg)  {  |