diff options
Diffstat (limited to 'drivers/net/atl1e')
-rw-r--r-- | drivers/net/atl1e/atl1e_ethtool.c | 17 | ||||
-rw-r--r-- | drivers/net/atl1e/atl1e_main.c | 38 |
2 files changed, 3 insertions, 52 deletions
diff --git a/drivers/net/atl1e/atl1e_ethtool.c b/drivers/net/atl1e/atl1e_ethtool.c index 60edb9f232bb..a76006c1bc6b 100644 --- a/drivers/net/atl1e/atl1e_ethtool.c +++ b/drivers/net/atl1e/atl1e_ethtool.c | |||
@@ -131,11 +131,6 @@ static int atl1e_set_settings(struct net_device *netdev, | |||
131 | return 0; | 131 | return 0; |
132 | } | 132 | } |
133 | 133 | ||
134 | static u32 atl1e_get_tx_csum(struct net_device *netdev) | ||
135 | { | ||
136 | return (netdev->features & NETIF_F_HW_CSUM) != 0; | ||
137 | } | ||
138 | |||
139 | static u32 atl1e_get_msglevel(struct net_device *netdev) | 134 | static u32 atl1e_get_msglevel(struct net_device *netdev) |
140 | { | 135 | { |
141 | #ifdef DBG | 136 | #ifdef DBG |
@@ -145,10 +140,6 @@ static u32 atl1e_get_msglevel(struct net_device *netdev) | |||
145 | #endif | 140 | #endif |
146 | } | 141 | } |
147 | 142 | ||
148 | static void atl1e_set_msglevel(struct net_device *netdev, u32 data) | ||
149 | { | ||
150 | } | ||
151 | |||
152 | static int atl1e_get_regs_len(struct net_device *netdev) | 143 | static int atl1e_get_regs_len(struct net_device *netdev) |
153 | { | 144 | { |
154 | return AT_REGS_LEN * sizeof(u32); | 145 | return AT_REGS_LEN * sizeof(u32); |
@@ -387,18 +378,14 @@ static const struct ethtool_ops atl1e_ethtool_ops = { | |||
387 | .get_wol = atl1e_get_wol, | 378 | .get_wol = atl1e_get_wol, |
388 | .set_wol = atl1e_set_wol, | 379 | .set_wol = atl1e_set_wol, |
389 | .get_msglevel = atl1e_get_msglevel, | 380 | .get_msglevel = atl1e_get_msglevel, |
390 | .set_msglevel = atl1e_set_msglevel, | ||
391 | .nway_reset = atl1e_nway_reset, | 381 | .nway_reset = atl1e_nway_reset, |
392 | .get_link = ethtool_op_get_link, | 382 | .get_link = ethtool_op_get_link, |
393 | .get_eeprom_len = atl1e_get_eeprom_len, | 383 | .get_eeprom_len = atl1e_get_eeprom_len, |
394 | .get_eeprom = atl1e_get_eeprom, | 384 | .get_eeprom = atl1e_get_eeprom, |
395 | .set_eeprom = atl1e_set_eeprom, | 385 | .set_eeprom = atl1e_set_eeprom, |
396 | .get_tx_csum = atl1e_get_tx_csum, | 386 | .set_tx_csum = ethtool_op_set_tx_hw_csum, |
397 | .get_sg = ethtool_op_get_sg, | ||
398 | .set_sg = ethtool_op_set_sg, | 387 | .set_sg = ethtool_op_set_sg, |
399 | #ifdef NETIF_F_TSO | 388 | .set_tso = ethtool_op_set_tso, |
400 | .get_tso = ethtool_op_get_tso, | ||
401 | #endif | ||
402 | }; | 389 | }; |
403 | 390 | ||
404 | void atl1e_set_ethtool_ops(struct net_device *netdev) | 391 | void atl1e_set_ethtool_ops(struct net_device *netdev) |
diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c index 8b889ab544b0..08f8c0969e9b 100644 --- a/drivers/net/atl1e/atl1e_main.c +++ b/drivers/net/atl1e/atl1e_main.c | |||
@@ -1664,41 +1664,6 @@ static int atl1e_tso_csum(struct atl1e_adapter *adapter, | |||
1664 | } | 1664 | } |
1665 | return 0; | 1665 | return 0; |
1666 | } | 1666 | } |
1667 | |||
1668 | if (offload_type & SKB_GSO_TCPV6) { | ||
1669 | real_len = (((unsigned char *)ipv6_hdr(skb) - skb->data) | ||
1670 | + ntohs(ipv6_hdr(skb)->payload_len)); | ||
1671 | if (real_len < skb->len) | ||
1672 | pskb_trim(skb, real_len); | ||
1673 | |||
1674 | /* check payload == 0 byte ? */ | ||
1675 | hdr_len = (skb_transport_offset(skb) + tcp_hdrlen(skb)); | ||
1676 | if (unlikely(skb->len == hdr_len)) { | ||
1677 | /* only xsum need */ | ||
1678 | dev_warn(&pdev->dev, | ||
1679 | "IPV6 tso with zero data??\n"); | ||
1680 | goto check_sum; | ||
1681 | } else { | ||
1682 | tcp_hdr(skb)->check = ~csum_ipv6_magic( | ||
1683 | &ipv6_hdr(skb)->saddr, | ||
1684 | &ipv6_hdr(skb)->daddr, | ||
1685 | 0, IPPROTO_TCP, 0); | ||
1686 | tpd->word3 |= 1 << TPD_IP_VERSION_SHIFT; | ||
1687 | hdr_len >>= 1; | ||
1688 | tpd->word3 |= (hdr_len & TPD_V6_IPHLLO_MASK) << | ||
1689 | TPD_V6_IPHLLO_SHIFT; | ||
1690 | tpd->word3 |= ((hdr_len >> 3) & | ||
1691 | TPD_V6_IPHLHI_MASK) << | ||
1692 | TPD_V6_IPHLHI_SHIFT; | ||
1693 | tpd->word3 |= (tcp_hdrlen(skb) >> 2 & | ||
1694 | TPD_TCPHDRLEN_MASK) << | ||
1695 | TPD_TCPHDRLEN_SHIFT; | ||
1696 | tpd->word3 |= ((skb_shinfo(skb)->gso_size) & | ||
1697 | TPD_MSS_MASK) << TPD_MSS_SHIFT; | ||
1698 | tpd->word3 |= 1 << TPD_SEGMENT_EN_SHIFT; | ||
1699 | } | ||
1700 | } | ||
1701 | return 0; | ||
1702 | } | 1667 | } |
1703 | 1668 | ||
1704 | check_sum: | 1669 | check_sum: |
@@ -1930,7 +1895,7 @@ static int atl1e_request_irq(struct atl1e_adapter *adapter) | |||
1930 | 1895 | ||
1931 | if (!adapter->have_msi) | 1896 | if (!adapter->have_msi) |
1932 | flags |= IRQF_SHARED; | 1897 | flags |= IRQF_SHARED; |
1933 | err = request_irq(adapter->pdev->irq, &atl1e_intr, flags, | 1898 | err = request_irq(adapter->pdev->irq, atl1e_intr, flags, |
1934 | netdev->name, netdev); | 1899 | netdev->name, netdev); |
1935 | if (err) { | 1900 | if (err) { |
1936 | dev_dbg(&pdev->dev, | 1901 | dev_dbg(&pdev->dev, |
@@ -2287,7 +2252,6 @@ static int atl1e_init_netdev(struct net_device *netdev, struct pci_dev *pdev) | |||
2287 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 2252 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; |
2288 | netdev->features |= NETIF_F_LLTX; | 2253 | netdev->features |= NETIF_F_LLTX; |
2289 | netdev->features |= NETIF_F_TSO; | 2254 | netdev->features |= NETIF_F_TSO; |
2290 | netdev->features |= NETIF_F_TSO6; | ||
2291 | 2255 | ||
2292 | return 0; | 2256 | return 0; |
2293 | } | 2257 | } |