aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/vmxnet3/vmxnet3_ethtool.c
diff options
context:
space:
mode:
authorstephen hemminger <shemminger@vyatta.com>2011-06-08 10:53:57 -0400
committerDavid S. Miller <davem@davemloft.net>2011-06-09 02:26:32 -0400
commit95305f6c3b4e8c0bdd5044604c418a8ad2defc4e (patch)
treea1c31e21427b48b270431660291e714cf1c3477a /drivers/net/vmxnet3/vmxnet3_ethtool.c
parent4b9d9be839fdb7dcd7ce7619a623fd9015a50cda (diff)
vmxnet3: convert to 64 bit stats interface
Convert vmxnet3 driver to 64 bit statistics interface. This driver was already counting packet per queue in a 64 bit value so not a huge change. Eliminate unused old net_device_stats structure. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: Scott J. Goldman <scottjg@vmware.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vmxnet3/vmxnet3_ethtool.c')
-rw-r--r--drivers/net/vmxnet3/vmxnet3_ethtool.c44
1 files changed, 22 insertions, 22 deletions
diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c
index dc959fe27aa5..bba7c15de5b6 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethtool.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c
@@ -113,15 +113,15 @@ vmxnet3_global_stats[] = {
113}; 113};
114 114
115 115
116struct net_device_stats * 116struct rtnl_link_stats64 *
117vmxnet3_get_stats(struct net_device *netdev) 117vmxnet3_get_stats64(struct net_device *netdev,
118 struct rtnl_link_stats64 *stats)
118{ 119{
119 struct vmxnet3_adapter *adapter; 120 struct vmxnet3_adapter *adapter;
120 struct vmxnet3_tq_driver_stats *drvTxStats; 121 struct vmxnet3_tq_driver_stats *drvTxStats;
121 struct vmxnet3_rq_driver_stats *drvRxStats; 122 struct vmxnet3_rq_driver_stats *drvRxStats;
122 struct UPT1_TxStats *devTxStats; 123 struct UPT1_TxStats *devTxStats;
123 struct UPT1_RxStats *devRxStats; 124 struct UPT1_RxStats *devRxStats;
124 struct net_device_stats *net_stats = &netdev->stats;
125 unsigned long flags; 125 unsigned long flags;
126 int i; 126 int i;
127 127
@@ -132,36 +132,36 @@ vmxnet3_get_stats(struct net_device *netdev)
132 VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_STATS); 132 VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_STATS);
133 spin_unlock_irqrestore(&adapter->cmd_lock, flags); 133 spin_unlock_irqrestore(&adapter->cmd_lock, flags);
134 134
135 memset(net_stats, 0, sizeof(*net_stats));
136 for (i = 0; i < adapter->num_tx_queues; i++) { 135 for (i = 0; i < adapter->num_tx_queues; i++) {
137 devTxStats = &adapter->tqd_start[i].stats; 136 devTxStats = &adapter->tqd_start[i].stats;
138 drvTxStats = &adapter->tx_queue[i].stats; 137 drvTxStats = &adapter->tx_queue[i].stats;
139 net_stats->tx_packets += devTxStats->ucastPktsTxOK + 138 stats->tx_packets += devTxStats->ucastPktsTxOK +
140 devTxStats->mcastPktsTxOK + 139 devTxStats->mcastPktsTxOK +
141 devTxStats->bcastPktsTxOK; 140 devTxStats->bcastPktsTxOK;
142 net_stats->tx_bytes += devTxStats->ucastBytesTxOK + 141 stats->tx_bytes += devTxStats->ucastBytesTxOK +
143 devTxStats->mcastBytesTxOK + 142 devTxStats->mcastBytesTxOK +
144 devTxStats->bcastBytesTxOK; 143 devTxStats->bcastBytesTxOK;
145 net_stats->tx_errors += devTxStats->pktsTxError; 144 stats->tx_errors += devTxStats->pktsTxError;
146 net_stats->tx_dropped += drvTxStats->drop_total; 145 stats->tx_dropped += drvTxStats->drop_total;
147 } 146 }
148 147
149 for (i = 0; i < adapter->num_rx_queues; i++) { 148 for (i = 0; i < adapter->num_rx_queues; i++) {
150 devRxStats = &adapter->rqd_start[i].stats; 149 devRxStats = &adapter->rqd_start[i].stats;
151 drvRxStats = &adapter->rx_queue[i].stats; 150 drvRxStats = &adapter->rx_queue[i].stats;
152 net_stats->rx_packets += devRxStats->ucastPktsRxOK + 151 stats->rx_packets += devRxStats->ucastPktsRxOK +
153 devRxStats->mcastPktsRxOK + 152 devRxStats->mcastPktsRxOK +
154 devRxStats->bcastPktsRxOK; 153 devRxStats->bcastPktsRxOK;
155 154
156 net_stats->rx_bytes += devRxStats->ucastBytesRxOK + 155 stats->rx_bytes += devRxStats->ucastBytesRxOK +
157 devRxStats->mcastBytesRxOK + 156 devRxStats->mcastBytesRxOK +
158 devRxStats->bcastBytesRxOK; 157 devRxStats->bcastBytesRxOK;
159 158
160 net_stats->rx_errors += devRxStats->pktsRxError; 159 stats->rx_errors += devRxStats->pktsRxError;
161 net_stats->rx_dropped += drvRxStats->drop_total; 160 stats->rx_dropped += drvRxStats->drop_total;
162 net_stats->multicast += devRxStats->mcastPktsRxOK; 161 stats->multicast += devRxStats->mcastPktsRxOK;
163 } 162 }
164 return net_stats; 163
164 return stats;
165} 165}
166 166
167static int 167static int