igbvf: Use net_device_stats from struct net_device
authorTobias Klauser <tklauser@distanz.ch>
Thu, 6 Apr 2017 06:45:22 +0000 (08:45 +0200)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 20 Apr 2017 23:32:45 +0000 (16:32 -0700)
Instead of using a private copy of struct net_device_stats in
struct igbvf_adapter, use stats from struct net_device. Also remove the
now unnecessary .ndo_get_stats function.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/igbvf/igbvf.h
drivers/net/ethernet/intel/igbvf/netdev.c

index 2a53ed84d9fc04c6eee59e85add464463a6339a0..bf69f01f8467754cea8ecdfd7f2f8bc68c82dc21 100644 (file)
@@ -243,7 +243,6 @@ struct igbvf_adapter {
        /* OS defined structs */
        struct net_device *netdev;
        struct pci_dev *pdev;
-       struct net_device_stats net_stats;
        spinlock_t stats_lock; /* prevent concurrent stats updates */
 
        /* structs defined in e1000_hw.h */
index 6029854b6a703fbc8964ba3c405dc6087924171c..1b9cbbe88f6f41f9dc74d5b27fd38af0cb6612e2 100644 (file)
@@ -400,8 +400,8 @@ next_desc:
 
        adapter->total_rx_packets += total_packets;
        adapter->total_rx_bytes += total_bytes;
-       adapter->net_stats.rx_bytes += total_bytes;
-       adapter->net_stats.rx_packets += total_packets;
+       netdev->stats.rx_bytes += total_bytes;
+       netdev->stats.rx_packets += total_packets;
        return cleaned;
 }
 
@@ -864,8 +864,8 @@ static bool igbvf_clean_tx_irq(struct igbvf_ring *tx_ring)
                }
        }
 
-       adapter->net_stats.tx_bytes += total_bytes;
-       adapter->net_stats.tx_packets += total_packets;
+       netdev->stats.tx_bytes += total_bytes;
+       netdev->stats.tx_packets += total_packets;
        return count < tx_ring->count;
 }
 
@@ -1838,7 +1838,7 @@ void igbvf_update_stats(struct igbvf_adapter *adapter)
        UPDATE_VF_COUNTER(VFGPRLBC, gprlbc);
 
        /* Fill out the OS statistics structure */
-       adapter->net_stats.multicast = adapter->stats.mprc;
+       adapter->netdev->stats.multicast = adapter->stats.mprc;
 }
 
 static void igbvf_print_link_info(struct igbvf_adapter *adapter)
@@ -2373,21 +2373,6 @@ static void igbvf_reset_task(struct work_struct *work)
        igbvf_reinit_locked(adapter);
 }
 
-/**
- * igbvf_get_stats - Get System Network Statistics
- * @netdev: network interface device structure
- *
- * Returns the address of the device statistics structure.
- * The statistics are actually updated from the timer callback.
- **/
-static struct net_device_stats *igbvf_get_stats(struct net_device *netdev)
-{
-       struct igbvf_adapter *adapter = netdev_priv(netdev);
-
-       /* only return the current stats */
-       return &adapter->net_stats;
-}
-
 /**
  * igbvf_change_mtu - Change the Maximum Transfer Unit
  * @netdev: network interface device structure
@@ -2675,7 +2660,6 @@ static const struct net_device_ops igbvf_netdev_ops = {
        .ndo_open               = igbvf_open,
        .ndo_stop               = igbvf_close,
        .ndo_start_xmit         = igbvf_xmit_frame,
-       .ndo_get_stats          = igbvf_get_stats,
        .ndo_set_rx_mode        = igbvf_set_rx_mode,
        .ndo_set_mac_address    = igbvf_set_mac,
        .ndo_change_mtu         = igbvf_change_mtu,