mptcp: avoid additional indirection in mptcp_poll()
authorPaolo Abeni <pabeni@redhat.com>
Fri, 11 Aug 2023 15:57:21 +0000 (17:57 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Aug 2023 06:06:14 +0000 (07:06 +0100)
We are going to remove the first subflow socket soon, so avoid
the additional indirection at poll() time. Instead access
directly the first subflow sock.

No functional changes intended.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mptcp/protocol.c

index d8b75fb..e89d1bf 100644 (file)
@@ -3844,12 +3844,12 @@ static __poll_t mptcp_poll(struct file *file, struct socket *sock,
        state = inet_sk_state_load(sk);
        pr_debug("msk=%p state=%d flags=%lx", msk, state, msk->flags);
        if (state == TCP_LISTEN) {
-               struct socket *ssock = READ_ONCE(msk->subflow);
+               struct sock *ssk = READ_ONCE(msk->first);
 
-               if (WARN_ON_ONCE(!ssock || !ssock->sk))
+               if (WARN_ON_ONCE(!ssk))
                        return 0;
 
-               return inet_csk_listen_poll(ssock->sk);
+               return inet_csk_listen_poll(ssk);
        }
 
        shutdown = READ_ONCE(sk->sk_shutdown);