]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
igb: retire the RX_CSUM flag and use the netdev flag instead
authorAlexander Duyck <alexander.h.duyck@intel.com>
Fri, 26 Aug 2011 07:45:57 +0000 (07:45 +0000)
committerJoe Jin <joe.jin@oracle.com>
Thu, 17 May 2012 12:48:16 +0000 (20:48 +0800)
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.

(cherry picked from commit 294e7d78f5b929536b81620ed33c6507f2921463)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/igb/igb.h
drivers/net/igb/igb_main.c

index 91f90fe6f427874fd13424ef76f1f63856e35a21..fde381a9d23c0bc88030f09036566ba8711d7a10 100644 (file)
@@ -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
index 8da74ebe8c5b46b8859b1a00b40f71e6a55191f8..3e608a1692b3864cc7b5c9027b690b64c823b2d3 100644 (file)
@@ -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);
 
@@ -5808,9 +5795,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 */