From e5d8c3ca79516db213294e40726e147d2d6e38ed Mon Sep 17 00:00:00 2001 From: Alexander Duyck Date: Fri, 26 Aug 2011 07:45:57 +0000 Subject: [PATCH] --- yaml --- r: 266492 b: refs/heads/master c: 294e7d78f5b929536b81620ed33c6507f2921463 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/ethernet/intel/igb/igb.h | 1 - .../drivers/net/ethernet/intel/igb/igb_main.c | 22 +++++-------------- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/[refs] b/[refs] index 3454a1d84456..314944b62a4d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4be000c874576541cd1d4d0498a0a72a1c60bf0b +refs/heads/master: 294e7d78f5b929536b81620ed33c6507f2921463 diff --git a/trunk/drivers/net/ethernet/intel/igb/igb.h b/trunk/drivers/net/ethernet/intel/igb/igb.h index 91f90fe6f427..fde381a9d23c 100644 --- a/trunk/drivers/net/ethernet/intel/igb/igb.h +++ b/trunk/drivers/net/ethernet/intel/igb/igb.h @@ -245,7 +245,6 @@ struct igb_ring { }; enum e1000_ring_flags_t { - IGB_RING_FLAG_RX_CSUM, IGB_RING_FLAG_RX_SCTP_CSUM, IGB_RING_FLAG_TX_CTX_IDX, IGB_RING_FLAG_TX_DETECT_HANG diff --git a/trunk/drivers/net/ethernet/intel/igb/igb_main.c b/trunk/drivers/net/ethernet/intel/igb/igb_main.c index ec715f45a449..cae4abb48501 100644 --- a/trunk/drivers/net/ethernet/intel/igb/igb_main.c +++ b/trunk/drivers/net/ethernet/intel/igb/igb_main.c @@ -732,8 +732,6 @@ static int igb_alloc_queues(struct igb_adapter *adapter) ring->dev = &adapter->pdev->dev; ring->netdev = adapter->netdev; ring->numa_node = adapter->node; - /* enable rx checksum */ - set_bit(IGB_RING_FLAG_RX_CSUM, &ring->flags); /* set flag indicating ring supports SCTP checksum offload */ if (adapter->hw.mac.type >= e1000_82576) 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) static int igb_set_features(struct net_device *netdev, u32 features) { - struct igb_adapter *adapter = netdev_priv(netdev); - int i; u32 changed = netdev->features ^ features; - for (i = 0; i < adapter->num_rx_queues; i++) { - if (features & NETIF_F_RXCSUM) - set_bit(IGB_RING_FLAG_RX_CSUM, - &adapter->rx_ring[i]->flags); - else - clear_bit(IGB_RING_FLAG_RX_CSUM, - &adapter->rx_ring[i]->flags); - } - if (changed & NETIF_F_HW_VLAN_RX) igb_vlan_mode(netdev, features); @@ -5807,9 +5794,12 @@ static inline void igb_rx_checksum(struct igb_ring *ring, { skb_checksum_none_assert(skb); - /* Ignore Checksum bit is set or checksum is disabled through ethtool */ - if (!test_bit(IGB_RING_FLAG_RX_CSUM, &ring->flags) || - (status_err & E1000_RXD_STAT_IXSM)) + /* Ignore Checksum bit is set */ + if (status_err & E1000_RXD_STAT_IXSM) + return; + + /* Rx checksum disabled via ethtool */ + if (!(ring->netdev->features & NETIF_F_RXCSUM)) return; /* TCP/UDP checksum error bit is set */