Messages in this thread | | | Date | Mon, 27 Sep 1999 16:07:22 +0200 | From | "Ram'on Garc'ia Fern'andez" <> | Subject | Re: Kernel crash in Linux 2.2.12 |
| |
On Mon, Sep 27, 1999 at 03:08:09PM +0200, Andrea Arcangeli wrote: > On Mon, 27 Sep 1999, Ram'on Garc'ia Fern'andez wrote: > > >actually an inline function. The faulting statement is: > > unsigned char *tmp=skb->tail; (include/linux/skbuff.h:462) > > Unfortunately this make not much sense. skb seems to be set to 0x10. If so > the previous eth_copy_and_sum would have sure Oopsed someway too.
Sorry, I made a mistake assigning the caller of skb_put. The actual source line in tulip.c is 2423:
2422 #else 2423 skb_put(skb, pkt_len); 2424 #endif
For getting the source lines, I recompiled the driver with the same flags, and with -g. I read the flags from the file .tulip.o.flags.
> > Could you show me the assembler a bit before the tulip_rx + 515 (there > should be a eth_copy_and_sum call if you have compiled with IP_ROUTER not > set or a memcpy deferencing ebx before starting if IP_ROUTER was set). >
Here it is. The output of objdump --dissassemble has been edited, to put the actual symbols in external calls; unfortunately objdump is not smart enough to lookup each address in the relocation table itself. Symbol suffixes (_Rsmp_xxxxx) omitted for clarity.
3a7e: 50 pushl %eax 3a7f: 53 pushl %ebx 3a80: e8 fc ff ff ff call eth_copy_and_sum 3a85: 83 c4 10 addl $0x10,%esp 3a88: 8b 44 24 24 movl 0x24(%esp,1),%eax 3a8c: 03 83 84 00 00 00 addl 0x84(%ebx),%eax 3a92: 89 83 84 00 00 00 movl %eax,0x84(%ebx) 3a98: 8b 4c 24 24 movl 0x24(%esp,1),%ecx 3a9c: 01 4b 5c addl %ecx,0x5c(%ebx) 3a9f: 3b 83 88 00 00 00 cmpl 0x88(%ebx),%eax 3aa5: 76 0f jbe 3ab6 <tulip_rx+0x1e2> 3aa7: 68 b6 3a 00 00 pushl $0x3ab6 3aac: 51 pushl %ecx 3aad: 53 pushl %ebx 3aae: e8 fc ff ff ff call skb_over_panic 3ab3: 83 c4 0c addl $0xc,%esp 3ab6: ff 44 24 28 incl 0x28(%esp,1) 3aba: eb 77 jmp 3b33 <tulip_rx+0x25f> 3abc: 8d 04 ad 00 00 00 00 leal 0x0(,%ebp,4),%eax 3ac3: 8d 97 50 03 00 00 leal 0x350(%edi),%edx 3ac9: 8b 1c 10 movl (%eax,%edx,1),%ebx 3acc: c7 04 10 00 00 00 00 movl $0x0,(%eax,%edx,1) 3ad3: 8b 74 24 24 movl 0x24(%esp,1),%esi Faulting address: 3ad7: 8b ab 84 00 00 00 movl 0x84(%ebx),%ebp 3add: 8d 04 2e leal (%esi,%ebp,1),%eax 3ae0: 89 83 84 00 00 00 movl %eax,0x84(%ebx) 3ae6: 01 73 5c addl %esi,0x5c(%ebx) 3ae9: 3b 83 88 00 00 00 cmpl 0x88(%ebx),%eax
- 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/
| |