From: Jitendra Kalsaria <redacted>
Date: Tue, 3 Jul 2012 12:38:04 -0700
This patch was intended to remove the line that increments the
tx_error statistic when the queue is correctly stopped.
It isn't correctly stopped, for the millionth time this condition is a
BUG, there is a kernel log message there because it is a BUG, are you
blind?
if (unlikely(atomic_read(&tx_ring->tx_count) < 2)) {
netif_info(qdev, tx_queued, qdev->ndev,
"%s: shutting down tx queue %d du to lack of resources.\n",
__func__, tx_ring_idx);
netif_stop_subqueue(ndev, tx_ring->wq_id);
atomic_inc(&tx_ring->queue_stopped);
tx_ring->tx_errors++;
return NETDEV_TX_BUSY;
}
THIS CODE BLOCK SHOULD NEVER EXECUTE. It's a driver bug, it should
never happen.
Even if the driver recovers correctly, it's still an error condition.
It's a bug, and bumping the statistic is not wrong at all. You should
find out why this happens, because it's a bug, and it should be fixed.