aboutsummaryrefslogtreecommitdiffstats
path: root/net/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/socket.c')
-rw-r--r--net/socket.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/socket.c b/net/socket.c
index 85633622c94d..674434127b3a 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -1132,9 +1132,12 @@ static __poll_t sock_poll(struct file *file, poll_table *wait)
1132 struct socket *sock = file->private_data; 1132 struct socket *sock = file->private_data;
1133 __poll_t events = poll_requested_events(wait); 1133 __poll_t events = poll_requested_events(wait);
1134 1134
1135 sock_poll_busy_loop(sock, events);
1136 if (!sock->ops->poll) 1135 if (!sock->ops->poll)
1137 return 0; 1136 return 0;
1137
1138 /* poll once if requested by the syscall */
1139 if (sk_can_busy_loop(sock->sk) && (events & POLL_BUSY_LOOP))
1140 sk_busy_loop(sock->sk, 1);
1138 return sock->ops->poll(file, sock, wait) | sock_poll_busy_flag(sock); 1141 return sock->ops->poll(file, sock, wait) | sock_poll_busy_flag(sock);
1139} 1142}
1140 1143