|
@@ -1236,10 +1236,19 @@ static void mlx4_en_tx_timeout(struct net_device *dev)
|
|
|
{
|
|
|
struct mlx4_en_priv *priv = netdev_priv(dev);
|
|
|
struct mlx4_en_dev *mdev = priv->mdev;
|
|
|
+ int i;
|
|
|
|
|
|
if (netif_msg_timer(priv))
|
|
|
en_warn(priv, "Tx timeout called on port:%d\n", priv->port);
|
|
|
|
|
|
+ for (i = 0; i < priv->tx_ring_num; i++) {
|
|
|
+ if (!netif_tx_queue_stopped(netdev_get_tx_queue(dev, i)))
|
|
|
+ continue;
|
|
|
+ en_warn(priv, "TX timeout on queue: %d, QP: 0x%x, CQ: 0x%x, Cons: 0x%x, Prod: 0x%x\n",
|
|
|
+ i, priv->tx_ring[i].qpn, priv->tx_ring[i].cqn,
|
|
|
+ priv->tx_ring[i].cons, priv->tx_ring[i].prod);
|
|
|
+ }
|
|
|
+
|
|
|
priv->port_stats.tx_timeout++;
|
|
|
en_dbg(DRV, priv, "Scheduling watchdog\n");
|
|
|
queue_work(mdev->workqueue, &priv->watchdog_task);
|