Re: [PATCH 5.18 72/88] mptcp: dont send RST for single subflow

Mat Martineau
2022-08-02T20:52:20Z

On Mon, 1 Aug 2022, Greg Kroah-Hartman wrote:

> From: Geliang Tang <geliang.tang@suse.com>
>
> [ Upstream commit 1761fed2567807f26fbd53032ff622f55978c7a9 ]
>
> When a bad checksum is detected and a single subflow is in use, don't
> send RST + MP_FAIL, send data_ack + MP_FAIL instead.
>
> So invoke tcp_send_active_reset() only when mptcp_has_another_subflow()
> is true.
>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> 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>

Hi Greg -

Please drop this patch from the 5.18-stable queue. It was the first of an
8-patch series and doesn't really stand alone.

This commit message lacks the Fixes: tag and the magic commit message
words that I've seen the scripts pick up, so I'm curious: was this patch
selected by hand?

Thanks,

Mat

> ---
> net/mptcp/subflow.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
> index 7919e259175d..ccae50eba664 100644
> --- a/net/mptcp/subflow.c
> +++ b/net/mptcp/subflow.c
> @@ -1221,14 +1221,14 @@ static bool subflow_check_data_avail(struct sock *ssk)
> /* RFC 8684 section 3.7. */
> if (subflow->send_mp_fail) {
> if (mptcp_has_another_subflow(ssk)) {
> + ssk->sk_err = EBADMSG;
> + tcp_set_state(ssk, TCP_CLOSE);
> + subflow->reset_transient = 0;
> + subflow->reset_reason = MPTCP_RST_EMIDDLEBOX;
> + tcp_send_active_reset(ssk, GFP_ATOMIC);
> while ((skb = skb_peek(&ssk->sk_receive_queue)))
> sk_eat_skb(ssk, skb);
> }
> - ssk->sk_err = EBADMSG;
> - tcp_set_state(ssk, TCP_CLOSE);
> - subflow->reset_transient = 0;
> - subflow->reset_reason = MPTCP_RST_EMIDDLEBOX;
> - tcp_send_active_reset(ssk, GFP_ATOMIC);
> WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA);
> return true;
> }
> --
> 2.35.1
>
>
>
>

--
Mat Martineau
Intel