igbvf: Use net_device_stats from struct net_device

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>
This commit is contained in:
Tobias Klauser 2017-04-06 08:45:22 +02:00 committed by Jeff Kirsher
parent b90fa87635
commit 55c05dd029
2 changed files with 5 additions and 22 deletions

View 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 */

View 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,