mptcp: reuse __mptcp_make_csum in validate_data_csum
authorGeliang Tang <geliang.tang@suse.com>
Fri, 7 Jan 2022 19:25:24 +0000 (11:25 -0800)
committerJakub Kicinski <kuba@kernel.org>
Sat, 8 Jan 2022 03:00:44 +0000 (19:00 -0800)
This patch reused __mptcp_make_csum() in validate_data_csum() instead of
open-coding.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/subflow.c

index 5bedc7e..bea47a1 100644 (file)
@@ -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);