On 9/9/26 4:49 PM, netdev-bot+sashiko@kernel.org wrote:
quoted
@@ -4141,6 +4146,7 @@ static int mptcp_connect(struct sock *sk,
struct sockaddr_unsized *uaddr,
quoted
if (IS_ERR(ssk))
return PTR_ERR(ssk);
+ set_bit(MPTCP_RTX_ENABLED, &msk->flags);
mptcp_set_state(sk, TCP_SYN_SENT);
subflow = mptcp_subflow_ctx(ssk);
[Severity: Medium]
Can this set_bit() re-enable the RTX timer on a msk that is already in
fallback? It runs unconditionally, before any of the fallback checks
below it, and the fallback state is sticky across a failed connect().
This is an unrelated/different issue: when (mptcp_)connect() fails early
it returns a TCP_CLOSE/SS_DISCONNECTED socket but the status is not
fully cleared. Should be handled with a follow-up/unrelated series
Would gating the set_bit() on !__mptcp_check_fallback(msk), or moving
it below the early-fallback checks, close this case and also make the
new comment "Prevent rescheduling on close and in case of fallback"
hold for a msk whose fallback predates the current connect()?
FTR, I can be low of coffee, but the above suggestion is crazy wrong.
/P