|
@@ -1333,21 +1333,21 @@ static void qlcnic_get_ethtool_stats(struct net_device *dev,
|
|
|
struct qlcnic_host_tx_ring *tx_ring;
|
|
|
struct qlcnic_esw_statistics port_stats;
|
|
|
struct qlcnic_mac_statistics mac_stats;
|
|
|
- int index, ret, length, size, tx_size, ring;
|
|
|
+ int index, ret, length, size, ring;
|
|
|
char *p;
|
|
|
|
|
|
- tx_size = adapter->drv_tx_rings * QLCNIC_TX_STATS_LEN;
|
|
|
+ memset(data, 0, stats->n_stats * sizeof(u64));
|
|
|
|
|
|
- memset(data, 0, tx_size * sizeof(u64));
|
|
|
for (ring = 0, index = 0; ring < adapter->drv_tx_rings; ring++) {
|
|
|
- if (test_bit(__QLCNIC_DEV_UP, &adapter->state)) {
|
|
|
+ if (adapter->is_up == QLCNIC_ADAPTER_UP_MAGIC) {
|
|
|
tx_ring = &adapter->tx_ring[ring];
|
|
|
data = qlcnic_fill_tx_queue_stats(data, tx_ring);
|
|
|
qlcnic_update_stats(adapter);
|
|
|
+ } else {
|
|
|
+ data += QLCNIC_TX_STATS_LEN;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- memset(data, 0, stats->n_stats * sizeof(u64));
|
|
|
length = QLCNIC_STATS_LEN;
|
|
|
for (index = 0; index < length; index++) {
|
|
|
p = (char *)adapter + qlcnic_gstrings_stats[index].stat_offset;
|