aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox
diff options
context:
space:
mode:
authorYevgeny Petrilin <yevgenyp@mellanox.com>2013-06-25 05:09:34 -0400
committerDavid S. Miller <davem@davemloft.net>2013-06-25 19:29:39 -0400
commitb944ebec787be9396978b0f7773f99e751330196 (patch)
tree21acf8571fc7606aa945546e26832d2104ba4094 /drivers/net/ethernet/mellanox
parent0cc5c8bf11852dec3225fda2f53a599243095d23 (diff)
net/mlx4_en: Add prints when TX timeout occurs
Print a warning when a TX timeout is detected Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.com> Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com> Signed-off-by: Amir Vadai <amirv@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox')
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_netdev.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index f1dcddcb8050..caf204770569 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -1236,10 +1236,19 @@ static void mlx4_en_tx_timeout(struct net_device *dev)
1236{ 1236{
1237 struct mlx4_en_priv *priv = netdev_priv(dev); 1237 struct mlx4_en_priv *priv = netdev_priv(dev);
1238 struct mlx4_en_dev *mdev = priv->mdev; 1238 struct mlx4_en_dev *mdev = priv->mdev;
1239 int i;
1239 1240
1240 if (netif_msg_timer(priv)) 1241 if (netif_msg_timer(priv))
1241 en_warn(priv, "Tx timeout called on port:%d\n", priv->port); 1242 en_warn(priv, "Tx timeout called on port:%d\n", priv->port);
1242 1243
1244 for (i = 0; i < priv->tx_ring_num; i++) {
1245 if (!netif_tx_queue_stopped(netdev_get_tx_queue(dev, i)))
1246 continue;
1247 en_warn(priv, "TX timeout on queue: %d, QP: 0x%x, CQ: 0x%x, Cons: 0x%x, Prod: 0x%x\n",
1248 i, priv->tx_ring[i].qpn, priv->tx_ring[i].cqn,
1249 priv->tx_ring[i].cons, priv->tx_ring[i].prod);
1250 }
1251
1243 priv->port_stats.tx_timeout++; 1252 priv->port_stats.tx_timeout++;
1244 en_dbg(DRV, priv, "Scheduling watchdog\n"); 1253 en_dbg(DRV, priv, "Scheduling watchdog\n");
1245 queue_work(mdev->workqueue, &priv->watchdog_task); 1254 queue_work(mdev->workqueue, &priv->watchdog_task);