From: Stephen Hemminger <shemminger@vyatta.com>
To: "Maciej Żenczykowski" <zenczykowski@gmail.com>
Cc: Stephen Hemminger <shemminger@linux-foundation.org>,
Linux NetDev <netdev@vger.kernel.org>
Subject: Re: sky2 driver fails to handle "rx length error: status 0x5d60100 length 2982" gracefully
Date: Tue, 17 Aug 2010 12:37:02 -0700 [thread overview]
Message-ID: <20100817123702.3d09a35b@nehalam> (raw)
In-Reply-To: <AANLkTimWmJ5mTOswT8oJx7MXckzDWcSySZdAu6HZb6r7@mail.gmail.com>
On Thu, 12 Aug 2010 13:31:13 -0700
Maciej Żenczykowski <zenczykowski@gmail.com> wrote:
> > The status values indicate that the GMAC (frame parser) got a reasonable
> > size frame but the DMA merged frames together. This indicates a timing
> > problem. There are some bits which even with NDA programmers manual doesn't
> > help with. The Linux driver expects the BIOS or EEPROM to set them correctly
> > because different problems different settings.
> >
> > There is firmware in eeprom that configures internal state. On one motherboard
> > the vendor provided an update. There is no good way to update this from Linux,
> > you need to go system vendor and install firmware with their native OS (ie Windows
> > or MacOS).
>
> Perfectly reasonable response. If there was a firmware update fix,
> I'd apply it...
> That would presumably prevent this from ever happening in the first place.
>
> But why doesn't the network driver reset the nic when it detects this
> 'rx length' error?
>
> I'm not asking for the error to not happen (besides it happens very rarely)...
>
> I'm asking, why does this error happening permanently hose the network driver.
> Once this happens the network card is not usable - traffic does not
> flow through it.
> You need to "ip link set down && ... up" to fix it. Isn't this
> something the driver could and should do all by itself?
Also, the driver could schedule a reset (that is what the watchdog does),
but it looks like the receive DMA is walking past the end of the packet
and that is really dangerous since it could clobber random memory.
You might want to increase the size of rx DMA buffer and dump the
contents of the receive buffer to see if there is a memory corruption
risk. If the End Of Frame DMA hardware is not working, there is a real
danger if the driver silently continues.
--
next prev parent reply other threads:[~2010-08-17 19:37 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-12 0:48 sky2 driver fails to handle "rx length error: status 0x5d60100 length 2982" gracefully Maciej Żenczykowski
2010-08-12 1:59 ` Stephen Hemminger
2010-08-12 5:36 ` Maciej Żenczykowski
2010-08-12 16:00 ` Stephen Hemminger
2010-08-12 16:16 ` Stephen Hemminger
2010-08-12 16:58 ` Maciej Żenczykowski
2010-08-12 19:18 ` Stephen Hemminger
2010-08-12 20:31 ` Maciej Żenczykowski
2010-08-17 19:37 ` Stephen Hemminger [this message]
2010-08-17 20:05 ` Maciej Żenczykowski
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=20100817123702.3d09a35b@nehalam \
--to=shemminger@vyatta.com \
--cc=netdev@vger.kernel.org \
--cc=shemminger@linux-foundation.org \
--cc=zenczykowski@gmail.com \
/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