lkml.org 
[lkml]   [2021]   [Mar]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.11 123/306] mptcp: reset last_snd on subflow close
    Date
    From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    From: Florian Westphal <fw@strlen.de>

    [ Upstream commit e0be4931f3fee2e04dec4013ea4f27ec2db8556f ]

    Send logic caches last active subflow in the msk, so it needs to be
    cleared when the cached subflow is closed.

    Fixes: d5f49190def61c ("mptcp: allow picking different xmit subflows")
    Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/155
    Reported-by: Christoph Paasch <cpaasch@apple.com>
    Acked-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/mptcp/protocol.c | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
    index 3cc7be259396..de89824a2a36 100644
    --- a/net/mptcp/protocol.c
    +++ b/net/mptcp/protocol.c
    @@ -2110,6 +2110,8 @@ static struct sock *mptcp_subflow_get_retrans(const struct mptcp_sock *msk)
    void __mptcp_close_ssk(struct sock *sk, struct sock *ssk,
    struct mptcp_subflow_context *subflow)
    {
    + struct mptcp_sock *msk = mptcp_sk(sk);
    +
    list_del(&subflow->node);

    lock_sock_nested(ssk, SINGLE_DEPTH_NESTING);
    @@ -2138,6 +2140,9 @@ void __mptcp_close_ssk(struct sock *sk, struct sock *ssk,
    release_sock(ssk);

    sock_put(ssk);
    +
    + if (ssk == msk->last_snd)
    + msk->last_snd = NULL;
    }

    static unsigned int mptcp_sync_mss(struct sock *sk, u32 pmtu)
    --
    2.30.1


    \
     
     \ /
      Last update: 2021-03-15 15:41    [W:7.268 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site