|
@@ -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;
|
|
|
}
|