diff options
Diffstat (limited to 'drivers/net/igb/igb_ethtool.c')
-rw-r--r-- | drivers/net/igb/igb_ethtool.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/igb/igb_ethtool.c index 27eae49e79c2..b1367ce6586e 100644 --- a/drivers/net/igb/igb_ethtool.c +++ b/drivers/net/igb/igb_ethtool.c | |||
@@ -293,10 +293,16 @@ static u32 igb_get_tx_csum(struct net_device *netdev) | |||
293 | 293 | ||
294 | static int igb_set_tx_csum(struct net_device *netdev, u32 data) | 294 | static int igb_set_tx_csum(struct net_device *netdev, u32 data) |
295 | { | 295 | { |
296 | if (data) | 296 | struct igb_adapter *adapter = netdev_priv(netdev); |
297 | |||
298 | if (data) { | ||
297 | netdev->features |= (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM); | 299 | netdev->features |= (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM); |
298 | else | 300 | if (adapter->hw.mac.type == e1000_82576) |
299 | netdev->features &= ~(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM); | 301 | netdev->features |= NETIF_F_SCTP_CSUM; |
302 | } else { | ||
303 | netdev->features &= ~(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | | ||
304 | NETIF_F_SCTP_CSUM); | ||
305 | } | ||
300 | 306 | ||
301 | return 0; | 307 | return 0; |
302 | } | 308 | } |