mptcp: move snd_una update earlier for fallback socket
authorPaolo Abeni <pabeni@redhat.com>
Tue, 20 Jun 2023 16:30:14 +0000 (18:30 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 22 Jun 2023 05:45:57 +0000 (22:45 -0700)
That will avoid an unneeded conditional in both the fast-path
and in the fallback case and will simplify a bit the next
patch.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/options.c
net/mptcp/protocol.c

index 8a80832..4bdcd2b 100644 (file)
@@ -1119,6 +1119,12 @@ bool mptcp_incoming_options(struct sock *sk, struct sk_buff *skb)
                mptcp_data_lock(subflow->conn);
                if (sk_stream_memory_free(sk))
                        __mptcp_check_push(subflow->conn, sk);
+
+               /* on fallback we just need to ignore the msk-level snd_una, as
+                * this is really plain TCP
+                */
+               msk->snd_una = READ_ONCE(msk->snd_nxt);
+
                __mptcp_data_acked(subflow->conn);
                mptcp_data_unlock(subflow->conn);
                return true;
index 992b89c..9c756d6 100644 (file)
@@ -1004,12 +1004,6 @@ static void __mptcp_clean_una(struct sock *sk)
        struct mptcp_data_frag *dtmp, *dfrag;
        u64 snd_una;
 
-       /* on fallback we just need to ignore snd_una, as this is really
-        * plain TCP
-        */
-       if (__mptcp_check_fallback(msk))
-               msk->snd_una = READ_ONCE(msk->snd_nxt);
-
        snd_una = msk->snd_una;
        list_for_each_entry_safe(dfrag, dtmp, &msk->rtx_queue, list) {
                if (after64(dfrag->data_seq + dfrag->data_len, snd_una))