Re: [Fwd: VIA Rhine Driver Bug]

From: Urban Widmark (urban@svenskatest.se)
Date: Sat May 13 2000 - 16:48:21 EST


(Forwarding as an attachment makes it a pain (for me at least) to reply
properly. The text below has been cut-'n-pasted and hand edited to
separate your questions to Donald, his respons and my response. I hope it
didn't become too incorrect/wierd.)

> > I have some sort of an Acer network card with a VIA Rhine chip on it.
> > lspci identifies it as follows:
> >
> > 00:0b.0 Ethernet controller: VIA Technologies, Inc. VT86C100A [Rhine
> > 10/100] (rev 06)

> > I'm currently using it quite happily on kernel 2.3.38, which detects it
> > as follows (during boot):
> >
> > via-rhine.c:v1.01 2/27/99 Written by Donald Becker
> > http://cesdis.gsfc.nasa.gov/linux/drivers/via-rhine.html
>
> That's a slightly older version, but there have been only two minor
> updates since.

Actually v1.01 can be more than one thing since changes used to be
made without also modifying the version number. :(
At least the following 2.3's have modifications without being marked as
changed:
  2.3.19
  2.3.26
  2.3.43
  2.3.45
  2.3.46
  2.3.47

Even though the changes are small it is of course wrong to not increase
the version number to keep them apart. Or at least mark them as changed
compared to Donald's v1.01.

> > However, when I try to use any more recent kernel, I get the following
> > (during boot):
> >
> > via-rhine.c:v1.01 2/27/99 Written by Donald Becker
> > http://cesdis.gsfc.nasa.gov/linux/drivers/via-rhine.html

2.3.50 is the first version with major changes compared to Donald's
version, but that one presents itself as:
via-rhine.c:v1.01-LK1.1.1 3/2/2000 ...

What kernel version(s) are you using that causes these problems?

> > And the following error immediately when the first network interaction
> > is attempted:
> > eth0: Oversized Ethernet frame spanned multiple buffers, entry 0x1
> > length 0 status 00000000!
> > eth0: Oversized Ethernet frame cf74a010 vs
> > cf74a010.
>
> This was a bug introduced by unchecked changes being put into the driver.
> You should report this on linux-kernel@vger.rutgers.edu.

I think Donald is exaggerating in calling the changes unchecked. The
changes were not tested as much as (I have understood that) Donald likes
to do before suggesting that they are included in a development kernel.
That does not mean that they are not tested at all.

Changes should not be made this way to a stable kernel, but to me (and
obviously to others, since my words carry little weight around here) they
are ok for testing in a development kernel.

2.3.99-pre3 contains a few changes I made to make the via-rhine support
the PCI DMA interface that was added to the 2.3 series. However it turned
out that gcc 2.95.2 can not compile the via-rhine driver in pre3 - pre5
properly. This caused the ring buffer to not being properly initialized,
and that in turn caused an error that the driver reports as an "Oversized
Ethernet frame".

For 2.3.99-pre6 that part of the code was modified so that (even) gcc
2.95.2 would compile it correctly. However, judging from your report above
you can't be using the pre3 - pre5 version, since that one calls itself
"via-rhine.c:v1.03a-LK1.1.3" (1.03a-LK... since it includes most of
Donald's 1.03a).

So again, which kernel versions are you having problems with?

And also, which compiler are you using?

/Urban

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon May 15 2000 - 21:00:23 EST