diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2009-01-19 00:49:45 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-01-21 17:34:06 -0500 |
commit | 78b6f4ce58d1c85190003840912cc9097cbb8146 (patch) | |
tree | 70682230f6f1a271f30b20a496f16ceeef217288 /drivers/net/ixgbe/ixgbe_ethtool.c | |
parent | f3f3abb62ccb1a1c77bcce855c04e12356e6ac95 (diff) |
ixgbe: Replace LRO with GRO
This patch makes ixgbe invoke the GRO hooks instead of LRO. As
GRO has a compatible external interface to LRO this is a very
straightforward replacement.
As GRO uses the napi structure to track the held packets, I've
modified the code paths involved to pass that along.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_ethtool.c')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_ethtool.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c b/drivers/net/ixgbe/ixgbe_ethtool.c index 67f87a79154d..4f6b5dfc78a2 100644 --- a/drivers/net/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ixgbe/ixgbe_ethtool.c | |||
@@ -89,8 +89,6 @@ static struct ixgbe_stats ixgbe_gstrings_stats[] = { | |||
89 | {"rx_header_split", IXGBE_STAT(rx_hdr_split)}, | 89 | {"rx_header_split", IXGBE_STAT(rx_hdr_split)}, |
90 | {"alloc_rx_page_failed", IXGBE_STAT(alloc_rx_page_failed)}, | 90 | {"alloc_rx_page_failed", IXGBE_STAT(alloc_rx_page_failed)}, |
91 | {"alloc_rx_buff_failed", IXGBE_STAT(alloc_rx_buff_failed)}, | 91 | {"alloc_rx_buff_failed", IXGBE_STAT(alloc_rx_buff_failed)}, |
92 | {"lro_aggregated", IXGBE_STAT(lro_aggregated)}, | ||
93 | {"lro_flushed", IXGBE_STAT(lro_flushed)}, | ||
94 | }; | 92 | }; |
95 | 93 | ||
96 | #define IXGBE_QUEUE_STATS_LEN \ | 94 | #define IXGBE_QUEUE_STATS_LEN \ |
@@ -808,15 +806,6 @@ static void ixgbe_get_ethtool_stats(struct net_device *netdev, | |||
808 | int stat_count = sizeof(struct ixgbe_queue_stats) / sizeof(u64); | 806 | int stat_count = sizeof(struct ixgbe_queue_stats) / sizeof(u64); |
809 | int j, k; | 807 | int j, k; |
810 | int i; | 808 | int i; |
811 | u64 aggregated = 0, flushed = 0, no_desc = 0; | ||
812 | for (i = 0; i < adapter->num_rx_queues; i++) { | ||
813 | aggregated += adapter->rx_ring[i].lro_mgr.stats.aggregated; | ||
814 | flushed += adapter->rx_ring[i].lro_mgr.stats.flushed; | ||
815 | no_desc += adapter->rx_ring[i].lro_mgr.stats.no_desc; | ||
816 | } | ||
817 | adapter->lro_aggregated = aggregated; | ||
818 | adapter->lro_flushed = flushed; | ||
819 | adapter->lro_no_desc = no_desc; | ||
820 | 809 | ||
821 | ixgbe_update_stats(adapter); | 810 | ixgbe_update_stats(adapter); |
822 | for (i = 0; i < IXGBE_GLOBAL_STATS_LEN; i++) { | 811 | for (i = 0; i < IXGBE_GLOBAL_STATS_LEN; i++) { |