commit 0e5bb338bf471ec46924f744c4301751bab8793a Author: Greg Kroah-Hartman Date: Wed May 25 14:42:07 2022 +0200 Linux 5.15.43 Signed-off-by: Greg Kroah-Hartman commit d12cd0bf5d262887eeaa407744618255bde76565 Author: Mat Martineau Date: Tue May 17 11:02:12 2022 -0700 mptcp: Do TCP fallback on early DSS checksum failure commit ae66fb2ba6c3dcaf8b9612b65aa949a1a4bed150 upstream. RFC 8684 section 3.7 describes several opportunities for a MPTCP connection to "fall back" to regular TCP early in the connection process, before it has been confirmed that MPTCP options can be successfully propagated on all SYN, SYN/ACK, and data packets. If a peer acknowledges the first received data packet with a regular TCP header (no MPTCP options), fallback is allowed. If the recipient of that first data packet finds a MPTCP DSS checksum error, this provides an opportunity to fail gracefully with a TCP fallback rather than resetting the connection (as might happen if a checksum failure were detected later). This commit modifies the checksum failure code to attempt fallback on the initial subflow of a MPTCP connection, only if it's a failure in the first data mapping. In cases where the peer initiates the connection, requests checksums, is the first to send data, and the peer is sending incorrect checksums (see https://github.com/multipath-tcp/mptcp_net-next/issues/275), this allows the connection to proceed as TCP rather than reset. Fixes: dd8bcd1768ff ("mptcp: validate the data checksum") Acked-by: Paolo Abeni Signed-off-by: Mat Martineau Signed-off-by: David S. Miller [mathew.j.martineau: backport: Resolved bitfield conflict in protocol.h] Signed-off-by: Mat Martineau Signed-off-by: Greg Kroah-Hartman