Commit d5a13915 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge branch 'mptcp-new-reviewer-and-prevent-a-warning'

Matthieu Baerts says:

====================
mptcp: new reviewer and prevent a warning

Patch 1 adds MPTCP long time contributor -- Geliang Tang -- as a new
reviewer for the project. Thanks!

Patch 2 prevents a warning when TCP Diag is used to close internal MPTCP
listener subflows. This is a correction for a patch introduced in v6.4
which was fixing an issue from v5.17.
====================

Link: https://lore.kernel.org/r/20231226-upstream-net-20231226-mptcp-prevent-warn-v1-0-1404dcc431ea@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents fe6d8300 4c028829
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -15077,6 +15077,7 @@ K: \bmdo_
NETWORKING [MPTCP]
M:	Matthieu Baerts <matttbe@kernel.org>
M:	Mat Martineau <martineau@kernel.org>
R:	Geliang Tang <geliang.tang@linux.dev>
L:	netdev@vger.kernel.org
L:	mptcp@lists.linux.dev
S:	Maintained
+13 −0
Original line number Diff line number Diff line
@@ -1982,6 +1982,17 @@ static void tcp_release_cb_override(struct sock *ssk)
	tcp_release_cb(ssk);
}

static int tcp_abort_override(struct sock *ssk, int err)
{
	/* closing a listener subflow requires a great deal of care.
	 * keep it simple and just prevent such operation
	 */
	if (inet_sk_state_load(ssk) == TCP_LISTEN)
		return -EINVAL;

	return tcp_abort(ssk, err);
}

static struct tcp_ulp_ops subflow_ulp_ops __read_mostly = {
	.name		= "mptcp",
	.owner		= THIS_MODULE,
@@ -2026,6 +2037,7 @@ void __init mptcp_subflow_init(void)

	tcp_prot_override = tcp_prot;
	tcp_prot_override.release_cb = tcp_release_cb_override;
	tcp_prot_override.diag_destroy = tcp_abort_override;

#if IS_ENABLED(CONFIG_MPTCP_IPV6)
	/* In struct mptcp_subflow_request_sock, we assume the TCP request sock
@@ -2061,6 +2073,7 @@ void __init mptcp_subflow_init(void)

	tcpv6_prot_override = tcpv6_prot;
	tcpv6_prot_override.release_cb = tcp_release_cb_override;
	tcpv6_prot_override.diag_destroy = tcp_abort_override;
#endif

	mptcp_diag_subflow_init(&subflow_ulp_ops);