Re: [PATCH net 1/7] qlge: Fixed packet transmit errors due to potential driver errors.
From: Francois Romieu <romieu@fr.zoreil.com>
Date: 2012-07-03 22:34:00
Eric Dumazet [off-list ref] :
On Tue, 2012-07-03 at 12:38 -0700, Jitendra Kalsaria wrote:quoted
I think my patch description might have been misleading. We are not fixing a logical problem but rather a statistics reporting problem. Our transmit function is not getting called when queue is full but when we stop the queue it increment tx_error statistic and one of our customers is running a test that deliberately floods the queue causing it to periodically be stopped. The customer has not reported logical problem with the test were driver perform very well but they merely pointed out that we were incorrectly reporting the queue full condition as a tx_error. This patch was intended to remove the line that increments the tx_error statistic when the queue is correctly stopped.I believe everybody kindly ask you to fix the driver logic instead of trying to hide to your customers the problems.
:o/ Jitendra was speaking about qlge_ethtool_ops.self_test(). It will need fixing as well.
In fact, you could just BUG() at this point, and maybe David will accept such a patch.
Mildly. It would turn qlge_ethtool_ops.self_test() into a system killer. [...]
testing atomic_read(&tx_ring->tx_count) at the beginning of qlge_send() is too late. NETDEV_TX_BUSY is deprecated.
Yes. Returning NETDEV_TX_BUSY when dma mapping fails in ql_map_send isn't nice either. -- Ueimor