aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2011-08-26 03:45:57 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-10-08 01:47:25 -0400
commit294e7d78f5b929536b81620ed33c6507f2921463 (patch)
tree41c00acf51f6d91d4a83977080bc3565c59388c3 /drivers/net/ethernet/intel
parent4be000c874576541cd1d4d0498a0a72a1c60bf0b (diff)
igb: retire the RX_CSUM flag and use the netdev flag instead
Since the netdev now has its' own checksum flag to indicate if Rx checksum is enabled we might as well use that instead of using the ring flag. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel')
-rw-r--r--drivers/net/ethernet/intel/igb/igb.h1
-rw-r--r--drivers/net/ethernet/intel/igb/igb_main.c22
2 files changed, 6 insertions, 17 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h
index 91f90fe6f427..fde381a9d23c 100644
--- a/drivers/net/ethernet/intel/igb/igb.h
+++ b/drivers/net/ethernet/intel/igb/igb.h
@@ -245,7 +245,6 @@ struct igb_ring {
245}; 245};
246 246
247enum e1000_ring_flags_t { 247enum e1000_ring_flags_t {
248 IGB_RING_FLAG_RX_CSUM,
249 IGB_RING_FLAG_RX_SCTP_CSUM, 248 IGB_RING_FLAG_RX_SCTP_CSUM,
250 IGB_RING_FLAG_TX_CTX_IDX, 249 IGB_RING_FLAG_TX_CTX_IDX,
251 IGB_RING_FLAG_TX_DETECT_HANG 250 IGB_RING_FLAG_TX_DETECT_HANG
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index ec715f45a449..cae4abb48501 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -732,8 +732,6 @@ static int igb_alloc_queues(struct igb_adapter *adapter)
732 ring->dev = &adapter->pdev->dev; 732 ring->dev = &adapter->pdev->dev;
733 ring->netdev = adapter->netdev; 733 ring->netdev = adapter->netdev;
734 ring->numa_node = adapter->node; 734 ring->numa_node = adapter->node;
735 /* enable rx checksum */
736 set_bit(IGB_RING_FLAG_RX_CSUM, &ring->flags);
737 /* set flag indicating ring supports SCTP checksum offload */ 735 /* set flag indicating ring supports SCTP checksum offload */
738 if (adapter->hw.mac.type >= e1000_82576) 736 if (adapter->hw.mac.type >= e1000_82576)
739 set_bit(IGB_RING_FLAG_RX_SCTP_CSUM, &ring->flags); 737 set_bit(IGB_RING_FLAG_RX_SCTP_CSUM, &ring->flags);
@@ -1811,19 +1809,8 @@ static u32 igb_fix_features(struct net_device *netdev, u32 features)
1811 1809
1812static int igb_set_features(struct net_device *netdev, u32 features) 1810static int igb_set_features(struct net_device *netdev, u32 features)
1813{ 1811{
1814 struct igb_adapter *adapter = netdev_priv(netdev);
1815 int i;
1816 u32 changed = netdev->features ^ features; 1812 u32 changed = netdev->features ^ features;
1817 1813
1818 for (i = 0; i < adapter->num_rx_queues; i++) {
1819 if (features & NETIF_F_RXCSUM)
1820 set_bit(IGB_RING_FLAG_RX_CSUM,
1821 &adapter->rx_ring[i]->flags);
1822 else
1823 clear_bit(IGB_RING_FLAG_RX_CSUM,
1824 &adapter->rx_ring[i]->flags);
1825 }
1826
1827 if (changed & NETIF_F_HW_VLAN_RX) 1814 if (changed & NETIF_F_HW_VLAN_RX)
1828 igb_vlan_mode(netdev, features); 1815 igb_vlan_mode(netdev, features);
1829 1816
@@ -5807,9 +5794,12 @@ static inline void igb_rx_checksum(struct igb_ring *ring,
5807{ 5794{
5808 skb_checksum_none_assert(skb); 5795 skb_checksum_none_assert(skb);
5809 5796
5810 /* Ignore Checksum bit is set or checksum is disabled through ethtool */ 5797 /* Ignore Checksum bit is set */
5811 if (!test_bit(IGB_RING_FLAG_RX_CSUM, &ring->flags) || 5798 if (status_err & E1000_RXD_STAT_IXSM)
5812 (status_err & E1000_RXD_STAT_IXSM)) 5799 return;
5800
5801 /* Rx checksum disabled via ethtool */
5802 if (!(ring->netdev->features & NETIF_F_RXCSUM))
5813 return; 5803 return;
5814 5804
5815 /* TCP/UDP checksum error bit is set */ 5805 /* TCP/UDP checksum error bit is set */