Commit 8401e87f authored by Geliang Tang's avatar Geliang Tang Committed by Jakub Kicinski
Browse files

mptcp: reuse __mptcp_make_csum in validate_data_csum



This patch reused __mptcp_make_csum() in validate_data_csum() instead of
open-coding.

Signed-off-by: default avatarGeliang Tang <geliang.tang@suse.com>
Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent c312ee21
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -845,9 +845,8 @@ static enum mapping_status validate_data_csum(struct sock *ssk, struct sk_buff *
					      bool csum_reqd)
{
	struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk);
	struct csum_pseudo_header header;
	u32 offset, seq, delta;
	__wsum csum;
	u16 csum;
	int len;

	if (!csum_reqd)
@@ -908,13 +907,11 @@ static enum mapping_status validate_data_csum(struct sock *ssk, struct sk_buff *
	 * while the pseudo header requires the original DSS data len,
	 * including that
	 */
	header.data_seq = cpu_to_be64(subflow->map_seq);
	header.subflow_seq = htonl(subflow->map_subflow_seq);
	header.data_len = htons(subflow->map_data_len + subflow->map_data_fin);
	header.csum = 0;

	csum = csum_partial(&header, sizeof(header), subflow->map_data_csum);
	if (unlikely(csum_fold(csum))) {
	csum = __mptcp_make_csum(subflow->map_seq,
				 subflow->map_subflow_seq,
				 subflow->map_data_len + subflow->map_data_fin,
				 subflow->map_data_csum);
	if (unlikely(csum)) {
		MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_DATACSUMERR);
		subflow->send_mp_fail = 1;
		MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_MPFAILTX);