From: Jon Mason <jdmason@gmail.com>
To: Richard Ems <richard.ems@mtg-marinetechnik.de>
Cc: linux-kernel@vger.kernel.org, linux-net@vger.kernel.org
Subject: Re: PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" (Plain)
Date: Fri, 17 Dec 2004 14:52:11 -0600 [thread overview]
Message-ID: <8924577504121712527144a5cf@mail.gmail.com> (raw)
In-Reply-To: <8924577504121710054331bb54@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3339 bytes --]
Richard,
Please give the patch below a try (I've also attached it for you
convienance), and send me the dmesg output from the next time you hit
the error.
--- dl2k.c 2004-09-10 10:46:34.000000000 -0500
+++ /tmp/dl2k.c 2004-12-17 14:37:40.644124080 -0600
@@ -565,8 +565,9 @@ rio_tx_timeout (struct net_device *dev)
{
long ioaddr = dev->base_addr;
- 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;
@@ -1007,8 +1008,9 @@ rio_error (struct net_device *dev, int i
/* 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);
}
On Fri, 17 Dec 2004 12:05:21 -0600, Jon Mason <jdmason@gmail.com> wrote:
> It seems to me that the driver does not re-enable interrupts or the
> transmit and receive engines after it resets the adapter because of
> the PCI bus error.
>
> So, I would like to provide you with a patch which will log the state
> of these registers after the adapter reset and during the transmit
> timeout events to dmesg. If you do not have the kernel source
> available, I can try and compile the module for you (it will just take
> a bit longer, as I will have to find the SuSE 9.2 source).
>
> Thanks,
> Jon
>
> On Fri, 17 Dec 2004 18:15:13 +0100, Richard Ems
> <richard.ems@mtg-marinetechnik.de> wrote:
> > Jon Mason wrote:
> > > It seems to me the cause of the tx timeouts is the "HostError", which
> > > is a PCI bus error. This most likely caused the adapter to hang and
> > > then the transmits started timing out.
> > >
> > > As far as I can tell, the dl2k driver code is common between 2.4 and
> > > 2.6. So, some other change in the kernel is causing the driver to
> > > behave differently and expose this problem.
> > >
> > > I am not the maintainer, but I can try to assist you. However, it will
> > > require running debug drivers (as I am not able to find any
> > > documentation on this adapter). If you are not willing or able to do
> > > this, then I would suggest going back to the 2.4 kernel.
> >
> > Ok, yes, I'm willing to try your debug drivers. We'll see if I'm also
> > able ;-)
> >
> > What shall I do?
> >
> > Thanks ,Richard
> >
> > --
> > Richard Ems
> >
> > MTG Marinetechnik GmbH
> > Wandsbeker Königstr. 62
> > 22041 Hamburg
> > Telefon: +49 40 65803 312
> > TeleFax: +49 40 65803 392
> > mail: richard.ems@mtg-marinetechnik.de
> >
> >
>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: dl2k.patch --]
[-- Type: text/x-patch; name="dl2k.patch", Size: 1153 bytes --]
--- dl2k.c 2004-09-10 10:46:34.000000000 -0500
+++ /tmp/dl2k.c 2004-12-17 14:37:40.644124080 -0600
@@ -565,8 +565,9 @@ rio_tx_timeout (struct net_device *dev)
{
long ioaddr = dev->base_addr;
- 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;
@@ -1007,8 +1008,9 @@ rio_error (struct net_device *dev, int i
/* 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);
}
next prev parent reply other threads:[~2004-12-17 20:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200412171100.16601.richard.ems@mtg-marinetechnik.de>
2004-12-17 17:07 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" Jon Mason
2004-12-17 17:15 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" (Plain) Richard Ems
2004-12-17 18:05 ` Jon Mason
2004-12-17 20:52 ` Jon Mason [this message]
2004-12-20 9:42 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" (Plain) (Plain) Richard Ems
2004-12-20 14:34 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" Richard Ems
2004-12-20 17:12 ` Jon Mason
2004-12-20 18:03 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" (Plain) Richard Ems
2004-12-20 20:31 ` Jon Mason
2004-12-21 9:51 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" Richard Ems
2004-12-21 16:02 ` Jon Mason
2004-12-22 9:29 ` Richard Ems
2004-12-22 14:54 ` Jon Mason
2004-12-22 15:58 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" (Plain) Richard Ems
2004-12-29 17:53 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" Richard Ems
2005-01-04 21:32 ` Jon Mason
2005-01-04 22:09 ` Francois Romieu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8924577504121712527144a5cf@mail.gmail.com \
--to=jdmason@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-net@vger.kernel.org \
--cc=richard.ems@mtg-marinetechnik.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox