Commit a2f6476e authored by Pedro Falcato's avatar Pedro Falcato Committed by Jakub Kicinski
Browse files

mptcp: Align mptcp_inet6_sk with other protocols



Ever since commit f5f80e32 ("ipv6: remove hard coded limitation on
ipv6_pinfo") that protocols stopped using the old "obj_size -
sizeof(struct ipv6_pinfo)" way of grabbing ipv6_pinfo, that severely
restricted struct layout and caused fun, hard to see issues.

However, mptcp_inet6_sk wasn't fixed (unlike tcp_inet6_sk). Do so.
The non-cloned sockets already do the right thing using
ipv6_pinfo_offset + the generic IPv6 code.

Signed-off-by: default avatarPedro Falcato <pfalcato@suse.de>
Reviewed-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20250430154541.1038561-1-pfalcato@suse.de


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent b88c382b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -3142,9 +3142,9 @@ static int mptcp_disconnect(struct sock *sk, int flags)
#if IS_ENABLED(CONFIG_MPTCP_IPV6)
static struct ipv6_pinfo *mptcp_inet6_sk(const struct sock *sk)
{
	unsigned int offset = sizeof(struct mptcp6_sock) - sizeof(struct ipv6_pinfo);
	struct mptcp6_sock *msk6 = container_of(mptcp_sk(sk), struct mptcp6_sock, msk);

	return (struct ipv6_pinfo *)(((u8 *)sk) + offset);
	return &msk6->np;
}

static void mptcp_copy_ip6_options(struct sock *newsk, const struct sock *sk)