[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