|
@@ -6667,14 +6667,9 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
iph = ip_hdr(skb);
|
|
|
tcp_opt_len = tcp_optlen(skb);
|
|
|
|
|
|
- if (skb_is_gso_v6(skb)) {
|
|
|
- hdr_len = skb_headlen(skb) - ETH_HLEN;
|
|
|
- } else {
|
|
|
- u32 ip_tcp_len;
|
|
|
-
|
|
|
- ip_tcp_len = ip_hdrlen(skb) + sizeof(struct tcphdr);
|
|
|
- hdr_len = ip_tcp_len + tcp_opt_len;
|
|
|
+ hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb) - ETH_HLEN;
|
|
|
|
|
|
+ if (!skb_is_gso_v6(skb)) {
|
|
|
iph->check = 0;
|
|
|
iph->tot_len = htons(mss + hdr_len);
|
|
|
}
|