Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6af803f authored by Jesse Brandeburg's avatar Jesse Brandeburg Committed by Jeff Garzik
Browse files

ixgbe: lro stats were not counted on first ethtool -Scall

parent c431f97e
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -774,6 +774,14 @@ static void ixgbe_get_ethtool_stats(struct net_device *netdev,
	int j, k;
	int i;
	u64 aggregated = 0, flushed = 0, no_desc = 0;
	for (i = 0; i < adapter->num_rx_queues; i++) {
		aggregated += adapter->rx_ring[i].lro_mgr.stats.aggregated;
		flushed += adapter->rx_ring[i].lro_mgr.stats.flushed;
		no_desc += adapter->rx_ring[i].lro_mgr.stats.no_desc;
	}
	adapter->lro_aggregated = aggregated;
	adapter->lro_flushed = flushed;
	adapter->lro_no_desc = no_desc;

	ixgbe_update_stats(adapter);
	for (i = 0; i < IXGBE_GLOBAL_STATS_LEN; i++) {
@@ -788,17 +796,11 @@ static void ixgbe_get_ethtool_stats(struct net_device *netdev,
		i += k;
	}
	for (j = 0; j < adapter->num_rx_queues; j++) {
		aggregated += adapter->rx_ring[j].lro_mgr.stats.aggregated;
		flushed += adapter->rx_ring[j].lro_mgr.stats.flushed;
		no_desc += adapter->rx_ring[j].lro_mgr.stats.no_desc;
		queue_stat = (u64 *)&adapter->rx_ring[j].stats;
		for (k = 0; k < stat_count; k++)
			data[i + k] = queue_stat[k];
		i += k;
	}
	adapter->lro_aggregated = aggregated;
	adapter->lro_flushed = flushed;
	adapter->lro_no_desc = no_desc;
}

static void ixgbe_get_strings(struct net_device *netdev, u32 stringset,