tcp: Call gso_make_checksum
authorTom Herbert <therbert@google.com>
Thu, 5 Jun 2014 00:20:09 +0000 (17:20 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 5 Jun 2014 05:46:38 +0000 (22:46 -0700)
Call common gso_make_checksum when calculating checksum for a
TCP GSO segment.

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_offload.c

index b92b81718ca42bc9e47b415c321eb143d7266852..d8de7b9e07201c25c8b075fe714489d4a29623b9 100644 (file)
@@ -97,9 +97,7 @@ struct sk_buff *tcp_gso_segment(struct sk_buff *skb,
                th->check = newcheck;
 
                if (skb->ip_summed != CHECKSUM_PARTIAL)
-                       th->check =
-                            csum_fold(csum_partial(skb_transport_header(skb),
-                                                   thlen, skb->csum));
+                       th->check = gso_make_checksum(skb, ~th->check);
 
                seq += mss;
                if (copy_destructor) {
@@ -133,8 +131,7 @@ struct sk_buff *tcp_gso_segment(struct sk_buff *skb,
        th->check = ~csum_fold((__force __wsum)((__force u32)th->check +
                                (__force u32)delta));
        if (skb->ip_summed != CHECKSUM_PARTIAL)
-               th->check = csum_fold(csum_partial(skb_transport_header(skb),
-                                                  thlen, skb->csum));
+               th->check = gso_make_checksum(skb, ~th->check);
 out:
        return segs;
 }