Its
/* 'skb_put()' points to the start of sk_buff data area. */
insl(ioaddr + RX_FIFO, skb_put(skb, pkt_len),
(pkt_len + 3) >> 2);
Now at this point the kernel has done
dev_alloc_skb pkt_len+5 (257 tail room, 16 head (magical))
skb_reserve (skb,2) 255 tail room 18 head
skb_put(skb, 252) 3 tail room 252 data 18 head
Can you do
objdump --disassemble --start-address=0x19C000 --stop-address=0x1A2000 /usr/src/linux/vmlinux and mail me that - then I can check its the actual code
its hitting