diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/atl1/atl1_main.c | 7 | ||||
-rw-r--r-- | drivers/net/bnx2.c | 8 | ||||
-rw-r--r-- | drivers/net/chelsio/sge.c | 2 | ||||
-rw-r--r-- | drivers/net/cxgb3/sge.c | 2 | ||||
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 11 | ||||
-rw-r--r-- | drivers/net/ioc3-eth.c | 2 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_main.c | 7 | ||||
-rw-r--r-- | drivers/net/mv643xx_eth.c | 2 | ||||
-rw-r--r-- | drivers/net/tg3.c | 15 |
9 files changed, 29 insertions, 27 deletions
diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c index 8d5994751e2e..d60c2217332c 100644 --- a/drivers/net/atl1/atl1_main.c +++ b/drivers/net/atl1/atl1_main.c | |||
@@ -1298,9 +1298,10 @@ static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb, | |||
1298 | 1298 | ||
1299 | iph->tot_len = 0; | 1299 | iph->tot_len = 0; |
1300 | iph->check = 0; | 1300 | iph->check = 0; |
1301 | skb->h.th->check = ~csum_tcpudp_magic(iph->saddr, | 1301 | tcp_hdr(skb)->check = ~csum_tcpudp_magic(iph->saddr, |
1302 | iph->daddr, 0, | 1302 | iph->daddr, 0, |
1303 | IPPROTO_TCP, 0); | 1303 | IPPROTO_TCP, |
1304 | 0); | ||
1304 | ipofst = skb_network_offset(skb); | 1305 | ipofst = skb_network_offset(skb); |
1305 | if (ipofst != ENET_HEADER_SIZE) /* 802.3 frame */ | 1306 | if (ipofst != ENET_HEADER_SIZE) /* 802.3 frame */ |
1306 | tso->tsopl |= 1 << TSO_PARAM_ETHTYPE_SHIFT; | 1307 | tso->tsopl |= 1 << TSO_PARAM_ETHTYPE_SHIFT; |
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 73512fb16452..7e7b5f344030 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
@@ -4524,7 +4524,7 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
4524 | vlan_tag_flags |= TX_BD_FLAGS_SW_LSO; | 4524 | vlan_tag_flags |= TX_BD_FLAGS_SW_LSO; |
4525 | 4525 | ||
4526 | tcp_opt_len = 0; | 4526 | tcp_opt_len = 0; |
4527 | if (skb->h.th->doff > 5) | 4527 | if (tcp_hdr(skb)->doff > 5) |
4528 | tcp_opt_len = tcp_optlen(skb); | 4528 | tcp_opt_len = tcp_optlen(skb); |
4529 | 4529 | ||
4530 | ip_tcp_len = ip_hdrlen(skb) + sizeof(struct tcphdr); | 4530 | ip_tcp_len = ip_hdrlen(skb) + sizeof(struct tcphdr); |
@@ -4532,9 +4532,9 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
4532 | iph = ip_hdr(skb); | 4532 | iph = ip_hdr(skb); |
4533 | iph->check = 0; | 4533 | iph->check = 0; |
4534 | iph->tot_len = htons(mss + ip_tcp_len + tcp_opt_len); | 4534 | iph->tot_len = htons(mss + ip_tcp_len + tcp_opt_len); |
4535 | skb->h.th->check = ~csum_tcpudp_magic(iph->saddr, iph->daddr, | 4535 | tcp_hdr(skb)->check = ~csum_tcpudp_magic(iph->saddr, |
4536 | 0, IPPROTO_TCP, 0); | 4536 | iph->daddr, 0, |
4537 | 4537 | IPPROTO_TCP, 0); | |
4538 | if (tcp_opt_len || (iph->ihl > 5)) { | 4538 | if (tcp_opt_len || (iph->ihl > 5)) { |
4539 | vlan_tag_flags |= ((iph->ihl - 5) + | 4539 | vlan_tag_flags |= ((iph->ihl - 5) + |
4540 | (tcp_opt_len >> 2)) << 8; | 4540 | (tcp_opt_len >> 2)) << 8; |
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c index a4204dff3636..43e92f9f0bcd 100644 --- a/drivers/net/chelsio/sge.c +++ b/drivers/net/chelsio/sge.c | |||
@@ -1872,7 +1872,7 @@ int t1_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1872 | hdr->opcode = CPL_TX_PKT_LSO; | 1872 | hdr->opcode = CPL_TX_PKT_LSO; |
1873 | hdr->ip_csum_dis = hdr->l4_csum_dis = 0; | 1873 | hdr->ip_csum_dis = hdr->l4_csum_dis = 0; |
1874 | hdr->ip_hdr_words = ip_hdr(skb)->ihl; | 1874 | hdr->ip_hdr_words = ip_hdr(skb)->ihl; |
1875 | hdr->tcp_hdr_words = skb->h.th->doff; | 1875 | hdr->tcp_hdr_words = tcp_hdr(skb)->doff; |
1876 | hdr->eth_type_mss = htons(MK_ETH_TYPE_MSS(eth_type, | 1876 | hdr->eth_type_mss = htons(MK_ETH_TYPE_MSS(eth_type, |
1877 | skb_shinfo(skb)->gso_size)); | 1877 | skb_shinfo(skb)->gso_size)); |
1878 | hdr->len = htonl(skb->len - sizeof(*hdr)); | 1878 | hdr->len = htonl(skb->len - sizeof(*hdr)); |
diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c index d38b1bcd138e..a70fe9145a2e 100644 --- a/drivers/net/cxgb3/sge.c +++ b/drivers/net/cxgb3/sge.c | |||
@@ -901,7 +901,7 @@ static void write_tx_pkt_wr(struct adapter *adap, struct sk_buff *skb, | |||
901 | CPL_ETH_II : CPL_ETH_II_VLAN; | 901 | CPL_ETH_II : CPL_ETH_II_VLAN; |
902 | tso_info |= V_LSO_ETH_TYPE(eth_type) | | 902 | tso_info |= V_LSO_ETH_TYPE(eth_type) | |
903 | V_LSO_IPHDR_WORDS(ip_hdr(skb)->ihl) | | 903 | V_LSO_IPHDR_WORDS(ip_hdr(skb)->ihl) | |
904 | V_LSO_TCPHDR_WORDS(skb->h.th->doff); | 904 | V_LSO_TCPHDR_WORDS(tcp_hdr(skb)->doff); |
905 | hdr->lso_info = htonl(tso_info); | 905 | hdr->lso_info = htonl(tso_info); |
906 | flits = 3; | 906 | flits = 3; |
907 | } else { | 907 | } else { |
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 4572fbba50f9..e86deb2ef823 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -2893,14 +2893,15 @@ e1000_tso(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring, | |||
2893 | struct iphdr *iph = ip_hdr(skb); | 2893 | struct iphdr *iph = ip_hdr(skb); |
2894 | iph->tot_len = 0; | 2894 | iph->tot_len = 0; |
2895 | iph->check = 0; | 2895 | iph->check = 0; |
2896 | skb->h.th->check = ~csum_tcpudp_magic(iph->saddr, | 2896 | tcp_hdr(skb)->check = ~csum_tcpudp_magic(iph->saddr, |
2897 | iph->daddr, 0, | 2897 | iph->daddr, 0, |
2898 | IPPROTO_TCP, 0); | 2898 | IPPROTO_TCP, |
2899 | 0); | ||
2899 | cmd_length = E1000_TXD_CMD_IP; | 2900 | cmd_length = E1000_TXD_CMD_IP; |
2900 | ipcse = skb_transport_offset(skb) - 1; | 2901 | ipcse = skb_transport_offset(skb) - 1; |
2901 | } else if (skb->protocol == htons(ETH_P_IPV6)) { | 2902 | } else if (skb->protocol == htons(ETH_P_IPV6)) { |
2902 | ipv6_hdr(skb)->payload_len = 0; | 2903 | ipv6_hdr(skb)->payload_len = 0; |
2903 | skb->h.th->check = | 2904 | tcp_hdr(skb)->check = |
2904 | ~csum_ipv6_magic(&ipv6_hdr(skb)->saddr, | 2905 | ~csum_ipv6_magic(&ipv6_hdr(skb)->saddr, |
2905 | &ipv6_hdr(skb)->daddr, | 2906 | &ipv6_hdr(skb)->daddr, |
2906 | 0, IPPROTO_TCP, 0); | 2907 | 0, IPPROTO_TCP, 0); |
@@ -2909,7 +2910,7 @@ e1000_tso(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring, | |||
2909 | ipcss = skb_network_offset(skb); | 2910 | ipcss = skb_network_offset(skb); |
2910 | ipcso = (void *)&(ip_hdr(skb)->check) - (void *)skb->data; | 2911 | ipcso = (void *)&(ip_hdr(skb)->check) - (void *)skb->data; |
2911 | tucss = skb_transport_offset(skb); | 2912 | tucss = skb_transport_offset(skb); |
2912 | tucso = (void *)&(skb->h.th->check) - (void *)skb->data; | 2913 | tucso = (void *)&(tcp_hdr(skb)->check) - (void *)skb->data; |
2913 | tucse = 0; | 2914 | tucse = 0; |
2914 | 2915 | ||
2915 | cmd_length |= (E1000_TXD_CMD_DEXT | E1000_TXD_CMD_TSE | | 2916 | cmd_length |= (E1000_TXD_CMD_DEXT | E1000_TXD_CMD_TSE | |
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c index ba012e10d79a..bc62e770a256 100644 --- a/drivers/net/ioc3-eth.c +++ b/drivers/net/ioc3-eth.c | |||
@@ -1426,7 +1426,7 @@ static int ioc3_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1426 | } | 1426 | } |
1427 | if (proto == IPPROTO_TCP) { | 1427 | if (proto == IPPROTO_TCP) { |
1428 | csoff += offsetof(struct tcphdr, check); | 1428 | csoff += offsetof(struct tcphdr, check); |
1429 | skb->h.th->check = csum; | 1429 | tcp_hdr(skb)->check = csum; |
1430 | } | 1430 | } |
1431 | 1431 | ||
1432 | w0 = ETXD_DOCHECKSUM | (csoff << ETXD_CHKOFF_SHIFT); | 1432 | w0 = ETXD_DOCHECKSUM | (csoff << ETXD_CHKOFF_SHIFT); |
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c index 96550d681623..e729ced52dc3 100644 --- a/drivers/net/ixgb/ixgb_main.c +++ b/drivers/net/ixgb/ixgb_main.c | |||
@@ -1195,13 +1195,14 @@ ixgb_tso(struct ixgb_adapter *adapter, struct sk_buff *skb) | |||
1195 | iph = ip_hdr(skb); | 1195 | iph = ip_hdr(skb); |
1196 | iph->tot_len = 0; | 1196 | iph->tot_len = 0; |
1197 | iph->check = 0; | 1197 | iph->check = 0; |
1198 | skb->h.th->check = ~csum_tcpudp_magic(iph->saddr, iph->daddr, | 1198 | tcp_hdr(skb)->check = ~csum_tcpudp_magic(iph->saddr, |
1199 | 0, IPPROTO_TCP, 0); | 1199 | iph->daddr, 0, |
1200 | IPPROTO_TCP, 0); | ||
1200 | ipcss = skb_network_offset(skb); | 1201 | ipcss = skb_network_offset(skb); |
1201 | ipcso = (void *)&(iph->check) - (void *)skb->data; | 1202 | ipcso = (void *)&(iph->check) - (void *)skb->data; |
1202 | ipcse = skb_transport_offset(skb) - 1; | 1203 | ipcse = skb_transport_offset(skb) - 1; |
1203 | tucss = skb_transport_offset(skb); | 1204 | tucss = skb_transport_offset(skb); |
1204 | tucso = (void *)&(skb->h.th->check) - (void *)skb->data; | 1205 | tucso = (void *)&(tcp_hdr(skb)->check) - (void *)skb->data; |
1205 | tucse = 0; | 1206 | tucse = 0; |
1206 | 1207 | ||
1207 | i = adapter->tx_ring.next_to_use; | 1208 | i = adapter->tx_ring.next_to_use; |
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index 43723839e934..ab15ecd4b3d6 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -1169,7 +1169,7 @@ static void eth_tx_submit_descs_for_skb(struct mv643xx_private *mp, | |||
1169 | desc->l4i_chk = udp_hdr(skb)->check; | 1169 | desc->l4i_chk = udp_hdr(skb)->check; |
1170 | break; | 1170 | break; |
1171 | case IPPROTO_TCP: | 1171 | case IPPROTO_TCP: |
1172 | desc->l4i_chk = skb->h.th->check; | 1172 | desc->l4i_chk = tcp_hdr(skb)->check; |
1173 | break; | 1173 | break; |
1174 | default: | 1174 | default: |
1175 | BUG(); | 1175 | BUG(); |
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 7ca30d76bf6f..414365c3198d 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -3922,7 +3922,7 @@ static int tg3_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
3922 | base_flags |= (TXD_FLAG_CPU_PRE_DMA | | 3922 | base_flags |= (TXD_FLAG_CPU_PRE_DMA | |
3923 | TXD_FLAG_CPU_POST_DMA); | 3923 | TXD_FLAG_CPU_POST_DMA); |
3924 | 3924 | ||
3925 | skb->h.th->check = 0; | 3925 | tcp_hdr(skb)->check = 0; |
3926 | 3926 | ||
3927 | } | 3927 | } |
3928 | else if (skb->ip_summed == CHECKSUM_PARTIAL) | 3928 | else if (skb->ip_summed == CHECKSUM_PARTIAL) |
@@ -4080,14 +4080,13 @@ static int tg3_start_xmit_dma_bug(struct sk_buff *skb, struct net_device *dev) | |||
4080 | iph->check = 0; | 4080 | iph->check = 0; |
4081 | iph->tot_len = htons(mss + hdr_len); | 4081 | iph->tot_len = htons(mss + hdr_len); |
4082 | if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) { | 4082 | if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) { |
4083 | skb->h.th->check = 0; | 4083 | tcp_hdr(skb)->check = 0; |
4084 | base_flags &= ~TXD_FLAG_TCPUDP_CSUM; | 4084 | base_flags &= ~TXD_FLAG_TCPUDP_CSUM; |
4085 | } | 4085 | } else |
4086 | else { | 4086 | tcp_hdr(skb)->check = ~csum_tcpudp_magic(iph->saddr, |
4087 | skb->h.th->check = ~csum_tcpudp_magic(iph->saddr, | 4087 | iph->daddr, 0, |
4088 | iph->daddr, 0, | 4088 | IPPROTO_TCP, |
4089 | IPPROTO_TCP, 0); | 4089 | 0); |
4090 | } | ||
4091 | 4090 | ||
4092 | if ((tp->tg3_flags2 & TG3_FLG2_HW_TSO) || | 4091 | if ((tp->tg3_flags2 & TG3_FLG2_HW_TSO) || |
4093 | (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705)) { | 4092 | (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705)) { |