diff options
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 1c002c7ef5d..9de75cdade5 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -5282,15 +5282,17 @@ void netdev_run_todo(void) | |||
5282 | void dev_txq_stats_fold(const struct net_device *dev, | 5282 | void dev_txq_stats_fold(const struct net_device *dev, |
5283 | struct rtnl_link_stats64 *stats) | 5283 | struct rtnl_link_stats64 *stats) |
5284 | { | 5284 | { |
5285 | unsigned long tx_bytes = 0, tx_packets = 0, tx_dropped = 0; | 5285 | u64 tx_bytes = 0, tx_packets = 0, tx_dropped = 0; |
5286 | unsigned int i; | 5286 | unsigned int i; |
5287 | struct netdev_queue *txq; | 5287 | struct netdev_queue *txq; |
5288 | 5288 | ||
5289 | for (i = 0; i < dev->num_tx_queues; i++) { | 5289 | for (i = 0; i < dev->num_tx_queues; i++) { |
5290 | txq = netdev_get_tx_queue(dev, i); | 5290 | txq = netdev_get_tx_queue(dev, i); |
5291 | spin_lock_bh(&txq->_xmit_lock); | ||
5291 | tx_bytes += txq->tx_bytes; | 5292 | tx_bytes += txq->tx_bytes; |
5292 | tx_packets += txq->tx_packets; | 5293 | tx_packets += txq->tx_packets; |
5293 | tx_dropped += txq->tx_dropped; | 5294 | tx_dropped += txq->tx_dropped; |
5295 | spin_unlock_bh(&txq->_xmit_lock); | ||
5294 | } | 5296 | } |
5295 | if (tx_bytes || tx_packets || tx_dropped) { | 5297 | if (tx_bytes || tx_packets || tx_dropped) { |
5296 | stats->tx_bytes = tx_bytes; | 5298 | stats->tx_bytes = tx_bytes; |