--- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1026,6 +1026,12 @@ static void subflow_data_ready(struct so msk = mptcp_sk(parent); if (state & TCPF_LISTEN) { + /* MPJ subflow are removed from accept queue before reaching here, + * avoid stray wakeups + */ + if (reqsk_queue_empty(&inet_csk(sk)->icsk_accept_queue)) + return; + set_bit(MPTCP_DATA_READY, &msk->flags); parent->sk_data_ready(parent); return;