@@ -121,15 +121,6 @@ static inline void sk_busy_loop(struct sock *sk, int nonblock)
#endif
}
-static inline void sock_poll_busy_loop(struct socket *sock, __poll_t events)
-{
- if (sk_can_busy_loop(sock->sk) &&
- events && (events & POLL_BUSY_LOOP)) {
- /* once, only if requested by syscall */
- sk_busy_loop(sock->sk, 1);
- }
-}
-
/* used in the NIC receive handler to mark the skb */
static inline void skb_mark_napi_id(struct sk_buff *skb,
struct napi_struct *napi)
@@ -1160,7 +1160,9 @@ static __poll_t sock_poll(struct file *file, poll_table *wait)
struct socket *sock = file->private_data;
__poll_t events = poll_requested_events(wait), mask = 0;
- sock_poll_busy_loop(sock, events);
+ /* poll once if requested by the syscall */
+ if ((events & POLL_BUSY_LOOP) && sk_can_busy_loop(sock->sk))
+ sk_busy_loop(sock->sk, 1);
if (sock->ops->poll) {
mask = sock->ops->poll(file, sock, wait);
There is no point in hiding this logic in a helper. Also remove the useless events != 0 check, and reorder the remaining ones so that the cheaper test comes first. Signed-off-by: Christoph Hellwig <hch@lst.de> --- include/net/busy_poll.h | 9 --------- net/socket.c | 4 +++- 2 files changed, 3 insertions(+), 10 deletions(-)