As far as I can tell sock->sk->sk_wq->wait will always point to sock->wq->wait. That means we can do the shorter dereference and not worry about any RCU protection. Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- net/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/socket.c b/net/socket.c index fe6620607b07..7cf037d21805 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1136,7 +1136,7 @@ static struct wait_queue_head *sock_get_poll_head(struct file *file, if (!sock->ops->poll_mask) return NULL; sock_poll_busy_loop(sock, events); - return sk_sleep(sock->sk); + return &sock->wq->wait; } static __poll_t sock_poll_mask(struct file *file, __poll_t events) -- 2.17.1