]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ixgbe: move setting RSC into a separate function
authorEmil Tantilov <emil.s.tantilov@intel.com>
Fri, 13 May 2011 02:22:40 +0000 (02:22 +0000)
committerJoe Jin <joe.jin@oracle.com>
Fri, 3 Feb 2012 01:15:51 +0000 (09:15 +0800)
Move setting RSC into a separate function to allow for reuse in other
parts of the code.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 3a28926451a22a2b699962e738c8540da642c319)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/ixgbe/ixgbe_ethtool.c

index 5f713874f69e2b0dc7a35e0627b008ccbfb773b5..4a3abc68f7d5daabf760c74d4efddc021c81faf5 100644 (file)
@@ -458,6 +458,21 @@ static int ixgbe_set_rx_csum(struct net_device *netdev, u32 data)
        return 0;
 }
 
+static void ixgbe_set_rsc(struct ixgbe_adapter *adapter)
+{
+       int i;
+
+       for (i = 0; i < adapter->num_rx_queues; i++) {
+               struct ixgbe_ring *ring = adapter->rx_ring[i];
+               if (adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED) {
+                       set_ring_rsc_enabled(ring);
+                       ixgbe_configure_rscctl(adapter, ring);
+               } else {
+                       ixgbe_clear_rscctl(adapter, ring);
+               }
+       }
+}
+
 static u32 ixgbe_get_tx_csum(struct net_device *netdev)
 {
        return (netdev->features & NETIF_F_IP_CSUM) != 0;
@@ -2285,25 +2300,12 @@ static int ixgbe_set_flags(struct net_device *netdev, u32 data)
                } else {
                        adapter->flags2 ^= IXGBE_FLAG2_RSC_ENABLED;
                        switch (adapter->hw.mac.type) {
+                       case ixgbe_mac_X540:
+                               ixgbe_set_rsc(adapter);
+                               break;
                        case ixgbe_mac_82599EB:
                                need_reset = true;
                                break;
-                       case ixgbe_mac_X540: {
-                               int i;
-                               for (i = 0; i < adapter->num_rx_queues; i++) {
-                                       struct ixgbe_ring *ring =
-                                                         adapter->rx_ring[i];
-                                       if (adapter->flags2 &
-                                           IXGBE_FLAG2_RSC_ENABLED) {
-                                               ixgbe_configure_rscctl(adapter,
-                                                                      ring);
-                                       } else {
-                                               ixgbe_clear_rscctl(adapter,
-                                                                  ring);
-                                       }
-                               }
-                       }
-                               break;
                        default:
                                break;
                        }