diff options
author | Tom Herbert <therbert@google.com> | 2013-02-06 07:58:41 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-02-07 23:33:51 -0500 |
commit | 41b749201bbe54ce807c4287b4942e85cb0ca466 (patch) | |
tree | 517ea10b31965d9eb40a46eb7999615fd1a81b0e /drivers/net/ethernet/mellanox/mlx4/en_tx.c | |
parent | 2de27f307feda26ef364f2407b70e3ca02a3ce56 (diff) | |
download | talos-obmc-linux-41b749201bbe54ce807c4287b4942e85cb0ca466.tar.gz talos-obmc-linux-41b749201bbe54ce807c4287b4942e85cb0ca466.zip |
mlx4_en: Fix BQL reset TX queue call point
Fix issue in Mellanox driver related to BQL. netdev_tx_reset_queue
was not being called in certain situations where the device was
being start and stopped. Moved netdev_tx_reset_queue from the reset
device path to mlx4_en_free_tx_buf which is where the rings are
cleaned in a reset (specifically from device being stopped).
Signed-off-by: Tom Herbert <therbert@google.com>
Acked-By: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/en_tx.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_tx.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c index 3b28e167b05b..49308cc65ee7 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c @@ -294,6 +294,8 @@ int mlx4_en_free_tx_buf(struct net_device *dev, struct mlx4_en_tx_ring *ring) cnt++; } + netdev_tx_reset_queue(ring->tx_queue); + if (cnt) en_dbg(DRV, priv, "Freed %d uncompleted tx descriptors\n", cnt); |