[vortex] Is it hardware bug or driver bug ?

Donald Becker becker@scyld.com
Tue Jun 4 12:10:02 2002


On Tue, 4 Jun 2002, wyb wrote:

> Linux 2.2.13, 3c59x.c:v0.99H 11/17/98.

What was the full driver detection message?

> My linux box crashed after running 17days. The following message were printed:
> skb_pull skb(c27fb180): data=c297bcd2 tail=c297bcdf head=c297bca0 end=c297bcf0 truesize=80 len=13
...
> <c016b45a> c016b428 T eth_type_trans
> <c01c83e0>
> <c01af644> c01af3c0 t vortex_rx

Hmmm, it looks as if eth_type_trans couldn't handle something about the
packet header.

That would be surprising, thus I suspect memory corruption.

> It seemed that NIC received a 13bytes packet, and driver tried
> statment  "skb->protocol=eth_type_trans(skb,dev)" on this packet. but
> 13bytes < ethernet->hard_head_len, so crashed.

Nope.  The driver sets the hardware to reject packets smaller than the
minimum frame size ("runts").  Most NICs have a sniffer mode that
doesn't reject runt and malformed packets, but no Linux drivers set that
mode.

> My questions is: is 13bytes pkt valid to 3C905 ? or driver should check ?

The driver doesn't need to check -- it cannot happen.

-- 
Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Second Generation Beowulf Clusters
Annapolis MD 21403			410-990-9993