[TG3]: Add some tx timeout debug messages.
authorMichael Chan <mchan@broadcom.com>
Tue, 13 Feb 2007 20:18:30 +0000 (12:18 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 13 Feb 2007 20:18:30 +0000 (12:18 -0800)
Print the most useful information during tx timeout to help debug.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tg3.c

index a1aeba2442f50683858033867d6e66d8d558d3b8..159570b12c388854c77b62ad14a907a009645585 100644 (file)
@@ -3735,13 +3735,23 @@ out:
        tg3_full_unlock(tp);
 }
 
+static void tg3_dump_short_state(struct tg3 *tp)
+{
+       printk(KERN_ERR PFX "DEBUG: MAC_TX_STATUS[%08x] MAC_RX_STATUS[%08x]\n",
+              tr32(MAC_TX_STATUS), tr32(MAC_RX_STATUS));
+       printk(KERN_ERR PFX "DEBUG: RDMAC_STATUS[%08x] WDMAC_STATUS[%08x]\n",
+              tr32(RDMAC_STATUS), tr32(WDMAC_STATUS));
+}
+
 static void tg3_tx_timeout(struct net_device *dev)
 {
        struct tg3 *tp = netdev_priv(dev);
 
-       if (netif_msg_tx_err(tp))
+       if (netif_msg_tx_err(tp)) {
                printk(KERN_ERR PFX "%s: transmit timed out, resetting\n",
                       dev->name);
+               tg3_dump_short_state(tp);
+       }
 
        schedule_work(&tp->reset_task);
 }