diff options
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 5 |
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 | ||