static int mptcp_listen(struct socket *sock, int backlog)
 {
        struct mptcp_sock *msk = mptcp_sk(sock->sk);
+       struct sock *sk = sock->sk;
        struct socket *ssock;
        int err;
 
        pr_debug("msk=%p", msk);
 
-       lock_sock(sock->sk);
+       lock_sock(sk);
        ssock = __mptcp_nmpc_socket(msk);
        if (!ssock) {
                err = -EINVAL;
        }
 
        mptcp_token_destroy(msk);
-       inet_sk_state_store(sock->sk, TCP_LISTEN);
-       sock_set_flag(sock->sk, SOCK_RCU_FREE);
+       inet_sk_state_store(sk, TCP_LISTEN);
+       sock_set_flag(sk, SOCK_RCU_FREE);
 
        err = ssock->ops->listen(ssock, backlog);
-       inet_sk_state_store(sock->sk, inet_sk_state_load(ssock->sk));
+       inet_sk_state_store(sk, inet_sk_state_load(ssock->sk));
        if (!err)
-               mptcp_copy_inaddrs(sock->sk, ssock->sk);
+               mptcp_copy_inaddrs(sk, ssock->sk);
 
        mptcp_event_pm_listener(ssock->sk, MPTCP_EVENT_LISTENER_CREATED);
 
 unlock:
-       release_sock(sock->sk);
+       release_sock(sk);
        return err;
 }