Re: PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?"

Jon Mason
2004-12-20T17:12:32Z

It looks correct to me. I apologize for the oversight.

On Mon, 20 Dec 2004 15:34:09 +0100, Richard Ems
<richard.ems@mtg-marinetechnik.de> wrote:
> Hi Jon, hi list.
>
> The following patch is what I'm trying now:
> (I added the *np declaration to your patch, is this correct?)
>
> Thanks, Richard
>
> --- dl2k.c,orig-save-2004.12.20 2004-12-20 09:32:19.000000000 +0100
> +++ dl2k.c 2004-12-20 15:24:39.051556188 +0100
> @@ -562,9 +562,11 @@
> rio_tx_timeout (struct net_device *dev)
> {
> long ioaddr = dev->base_addr;
> + struct netdev_private *np = dev->priv;
>
> - printk (KERN_INFO "%s: Tx timed out (%4.4x), is buffer full?\n",
> - dev->name, readl (ioaddr + TxStatus));
> + printk (KERN_INFO "%s: Tx timed out (%4.4x) %d %d %x %x\n",
> + dev->name, readl (ioaddr + TxStatus), np->cur_tx,
> np->cur_rx,
> + readl (ioaddr + DMACtrl), readw(ioaddr + IntEnable));
> rio_free_tx(dev, 0);
> dev->if_port = 0;
> dev->trans_start = jiffies;
> @@ -1005,8 +1007,9 @@
> /* PCI Error, a catastronphic error related to the bus interface
> occurs, set GlobalReset and HostReset to reset. */
> if (int_status & HostError) {
> - printk (KERN_ERR "%s: HostError! IntStatus %4.4x.\n",
> - dev->name, int_status);
> + printk (KERN_ERR "%s: HostError! IntStatus %4.4x. %d %d
> %x %x\n",
> + dev->name, int_status, np->cur_tx, np->cur_rx,
> + readl (ioaddr + DMACtrl), readw(ioaddr +
> IntEnable));
> writew (GlobalReset | HostReset, ioaddr + ASICCtrl + 2);
> mdelay (500);
> }
>
> --
> Richard Ems
> Tel: +49 40 65803 312
> Fax: +49 40 65803 392
> Richard.Ems@mtg-marinetechnik.de
>
> MTG Marinetechnik GmbH - Wandsbeker Königstr. 62 - D 22041 Hamburg
>
> GF Dipl.-Ing. Ullrich Keil
> Handelsregister: Abt. B Nr. 11 500 - Amtsgericht Hamburg Abt. 66
> USt.-IdNr.: DE 1186 70571
>
>