Paolo Abeni wrote: > --- a/net/mptcp/subflow.c > +++ b/net/mptcp/subflow.c > @@ -262,23 +262,19 @@ static void subflow_ulp_clone(const struct request_sock *req, > struct mptcp_subflow_context *old_ctx = mptcp_subflow_ctx(newsk); > struct mptcp_subflow_context *new_ctx; > > - /* newsk->sk_socket is NULL at this point */ > - new_ctx = subflow_create_ctx(newsk, priority); > - if (!new_ctx) > + if (!subflow_req->mp_capable || > + (new_ctx = subflow_create_ctx(newsk, priority)) == NULL) { > + tcp_sk(newsk)->is_mptcp = 0; > return; > + } I would prefer to avoid assignment inside a conditional. Otherwise change looks useful to me.