I have been bitten by a possible bug in hc_crisv10.c, which is in the linux kernel distribution that comes with the Axis Devboard 83+. It's based on the 2.6.11 kernel. (note that it's build under the cris compiler).
The ksymoops output is pasted below. I am seeking some guidance as to where I should go from here (please don't say "go to USB hell" as I am already there). I've spoken to Axis, and they say that perhaps a patch has been posted for the linux usb driver, but I cannot locate one. Also, since the driver may be modified by Axis, applying a fix might break something else. I am somewhat on my own, as Axis may not be able to look at this for some time. Reading the debug output did not give me much of a clue as to what happened, other than it appears that an interrupt was not properly handled. Note that the Axis eth1 port is driven via the usb driver and that this error occurs when the commandline: "ifconfig eth1 hw ether 00408c63abc6" is issued to set the MAC address. This kernel crash can be easily reproduced. Thanks to all for your suggestions and guidance. Mark Richards SolarWave Boston ksymoops-cris oops_file.txt ksymoops 2.4.11 on i686 2.6.10-1.741_FC3. Options used -v os/linux/vmlinux (specified) -K (specified) -L (specified) -O (specified) -m os/linux/System.map (specified) -t cris -a cris /usr/bin/nm: os/linux/vmlinux: Invalid bfd target Error (pclose_local): read_nm_symbols pclose failed 0x100 Warning (read_vmlinux): no kernel symbols in vmlinux, is os/linux/vmlinux a valid vmlinux file? <1>Unable to handle kernel NULL pointer dereference at virtual address 00000000 IRP: c00cb428 SRP: c001ef20 DCCR: 00000400 USP: 9ffffe38 MOF: 000000fc r0: c03c84a0 r1: 00000000 r2: c0175f84 r3: 0000001f r4: 00000224 r5: b00002 r8: c0175f30 r9: b0002000 r10: 0000001f r11: c Warning (Oops_set_regs): garbage 'r11: c' at end of register line ignored 0319380 r12: c0175f84 r13: c0150028 oR10: 0000001f Stack from 9ffffe38: 000c81e0 000c81e0 3 564a3c8 31687465 00000000 00000000 00000000 40000001 fe116e8c 000854bc 00 000005 0008559e 00000005 00083a48 35567388 9ffffeb4 00000005 000852ea 357 0a838 3565ac3e 00000000 00000000 00000000 00000000 Call Trace: Stack from c0175d c0005bfa c0175eb4 c00042fa c0175de4 c000591e c0319380 000000fc c0175eb c015cd40 00000000 0000100b c0175eb4 c0175df0 c00059da 00000000 c0175e94 c00050fc 00002000 b0000207 00000224 00000000 c1996000 0000100b 00000000 Call Trace: [<c0005bfa>] [<c00042fa>] [<c000591e>] [<c00059da>] [<c00050fc>] [<c 001ef20>] [<c00096b0>] [<c000571e>] [<c001ef20>] [<c00cb428>] [<c001ef20> [<c00041f0>] Warning (Oops_read): Code line not seen, dumping what data is available >>PC; c00cb428 <etrax_usb_hc_interrupt_top_half+32/ce> <===== >>IRP; c00cb428 <etrax_usb_hc_interrupt_top_half+32/ce> >>SRP; c001ef20 <handle_IRQ_event+2c/56> IRP; c00cb428 >><etrax_usb_hc_interrupt_top_half+32/ce> >>SRP; c001ef20 <handle_IRQ_event+2c/56> r0; c03c84a0 >><_end+18cfc0/1dc4b20> r2; c0175f84 <init_thread_union+1f84/2000> r8; >>c0175f30 <init_thread_union+1f30/2000> r12; c0175f84 >><init_thread_union+1f84/2000> r13; c0150028 <__func__.4+ee60/1aaf1> Trace; c0005bfa <raw_printk+0/7e> Trace; c00042fa <show_stack+0/a6> Trace; c000591e <show_registers+e2/15c> Trace; c00059da <die_if_kernel+32/42> Trace; c00050fc <do_page_fault+1ec/2ac> 3 warnings and 1 error issued. Results may not be reliable. Decoding objdump-cris: oops.code: no symbols oops.code: file format binary Disassembly of section .data: Disassembly of os/linux/vmlinux PC = 0xc00cb428 Ooops in function c00cb3f6 t etrax_usb_hc_interrupt_top_half os/linux/vmlinux: file format elf32-cris Disassembly of section .text: c00cb3f6 <etrax_usb_hc_interrupt_top_half>: etrax_usb_hc_interrupt_top_half(): /home/dev/axis-r2/devboard-R2_00/os/linux-2.6/drivers/usb/host/hc_crisv10.c: 3273 static irqreturn_t etrax_usb_hc_interrupt_top_half(int irq, void *vhc, struct pt_regs *regs) { c00cb3f6: fce1 7ebe push $srp c00cb3fa: fce1 ee8f push $r8 c00cb3fe: 6e86 move.d $sp,$r8 c00cb400: a0e2 subq 32,$sp c00cb402: fe7b movem $r7,[$sp] c00cb404: 6b76 move.d $r11,$r7 /home/dev/axis-r2/devboard-R2_00/os/linux-2.6/drivers/usb/host/hc_crisv10.c: 3286 usb_interrupt_registers_t *reg; unsigned long flags; __u32 irq_mask; __u8 status; __u32 epid_attn; __u16 port_status_1; __u16 port_status_2; __u32 fm_number; DBFENTER; /* Read critical registers into local variables, do kmalloc afterwards. */ local_irq_save(flags); c00cb406: 7d56 move $ccr,$r13 c00cb408: f025 di /home/dev/axis-r2/devboard-R2_00/os/linux-2.6/drivers/usb/host/hc_crisv10.c: 3288 irq_mask = *R_USB_IRQ_MASK_READ; c00cb40a: 6f9e 0402 00b0 move.d b0000204 <dram_start-0xffffdfc>,$r9 c00cb410: 599a move.w [$r9],$r9 c00cb412: 5964 movu.w $r9,$r6 /home/dev/axis-r2/devboard-R2_00/os/linux-2.6/drivers/usb/host/hc_crisv10.c: 3292 /* Reading R_USB_STATUS clears the ctl_status interrupt. Note that R_USB_STATUS must be read before R_USB_EPID_ATTN since reading the latter clears the ourun and perror fields of R_USB_STATUS. */ status = *R_USB_STATUS; c00cb414: 6f5e 0202 00b0 move.d b0000202 <dram_start-0xffffdfe>,$r5 c00cb41a: 455a move.b [$r5],$r5 /home/dev/axis-r2/devboard-R2_00/os/linux-2.6/drivers/usb/host/hc_crisv10.c: 3295 /* Reading R_USB_EPID_ATTN clears the iso_eof, bulk_eot and epid_attn interrupts. */ epid_attn = *R_USB_EPID_ATTN; c00cb41c: 6f4e 2402 00b0 move.d b0000224 <dram_start-0xffffddc>,$r4 c00cb422: 644a move.d [$r4],$r4 /home/dev/axis-r2/devboard-R2_00/os/linux-2.6/drivers/usb/host/hc_crisv10.c: 3299 /* Reading R_USB_RH_PORT_STATUS_1 and R_USB_RH_PORT_STATUS_2 clears the port_status interrupt. */ port_status_1 = *R_USB_RH_PORT_STATUS_1; c00cb424: 6f3e 1802 00b0 move.d b0000218 <dram_start-0xffffde8>,$r3 Disassembly of section .exit.text: Disassembly of section .init.text: #### OOPS #### c00cb428: 00b0 blt c00cb42a <etrax_usb_hc_interrupt_top_half+0x34> c00cb42a: 533a move.w [$r3],$r3 c00cb42c: 6f2e 1a02 00b0 move.d b000021a <dram_start-0xffffde6>,$r2 c00cb432: 522a move.w [$r2],$r2 c00cb434: 6f1e 0c02 00b0 move.d b000020c <dram_start-0xffffdf4>,$r1 [EMAIL PROTECTED] devboard-R2_00]# ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel