[vortex] Is it hardware bug or driver bug ?

wyb wyb@ccert.com.cn
Mon Jun 3 23:27:02 2002


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
Stack: c016b45a c020ba60 c27fb180 c01c83e0...

The first line is output by modified skb_pull():
skb_pull( skb, len )
{
    if ( len > skb->len )
        printk( "skb_pull skb(%p): data=%p tail=%p head=%p end=%p truesize=%p len=%p\n",
                skb, skb->data, skb->tail, skb->head, skb->end, skb->truesize, skb->len ) ;
    ...
}

<c016b45a> c016b428 T eth_type_trans
<c01c83e0> 
<c01af644> c01af3c0 t vortex_rx
<c010e410> c010e3e4 T do_sigaltstack
<c01af1b9>  c01aefe0 t vortex_interrupt

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.

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

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