Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mptcp: Align mptcp_inet6_sk with other protocols

Ever since commit f5f80e32de12 ("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: Pedro Falcato <pfalcato@suse.de>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20250430154541.1038561-1-pfalcato@suse.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Pedro Falcato and committed by
Jakub Kicinski
a2f6476e b88c382b

+2 -2
+2 -2
net/mptcp/protocol.c
··· 3142 3142 #if IS_ENABLED(CONFIG_MPTCP_IPV6) 3143 3143 static struct ipv6_pinfo *mptcp_inet6_sk(const struct sock *sk) 3144 3144 { 3145 - unsigned int offset = sizeof(struct mptcp6_sock) - sizeof(struct ipv6_pinfo); 3145 + struct mptcp6_sock *msk6 = container_of(mptcp_sk(sk), struct mptcp6_sock, msk); 3146 3146 3147 - return (struct ipv6_pinfo *)(((u8 *)sk) + offset); 3147 + return &msk6->np; 3148 3148 } 3149 3149 3150 3150 static void mptcp_copy_ip6_options(struct sock *newsk, const struct sock *sk)