summary refs log tree commit diff
path: root/net/ipv4/tcp_offload.c
diff options
context:
space:
mode:
authorTom Herbert <therbert@google.com>2014-06-04 17:20:09 -0700
committerDavid S. Miller <davem@davemloft.net>2014-06-04 22:46:38 -0700
commite9c3a24b3ace90b428848fdaf772ed264982abcc (patch)
treef26309bd487abf81f6413e083a58cbecc9ab97d1 /net/ipv4/tcp_offload.c
parent7e2b10c1e52ca37fb522be49f4be367f9311d0cd (diff)
downloadlinux-e9c3a24b3ace90b428848fdaf772ed264982abcc.tar.gz
tcp: Call gso_make_checksum
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>
Diffstat (limited to 'net/ipv4/tcp_offload.c')
-rw-r--r--net/ipv4/tcp_offload.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/net/ipv4/tcp_offload.c b/net/ipv4/tcp_offload.c
index b92b81718ca4..d8de7b9e0720 100644
--- a/net/ipv4/tcp_offload.c
+++ b/net/ipv4/tcp_offload.c
@@ -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;
 }