Bug 128916
Summary: | gcc -Os triggers oops in io_edgeport kernel module | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Willem Riede <wriede> | ||||
Component: | kernel | Assignee: | Dave Jones <davej> | ||||
Status: | CLOSED ERRATA | QA Contact: | Brian Brock <bbrock> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | 3 | CC: | alan, bressers, greg, jredman, mjc, nathan-redhatbugzilla, nickm, pfrields, wtogami, zaitcev | ||||
Target Milestone: | --- | Keywords: | Security | ||||
Target Release: | --- | ||||||
Hardware: | i686 | ||||||
OS: | Linux | ||||||
Whiteboard: | impact=moderate,public=20041126 | ||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2005-01-25 06:26:25 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 123268, 136451 | ||||||
Attachments: |
|
Description
Willem Riede
2004-07-31 13:23:39 UTC
I get what looks to be a similar oops (if you need the syslog please let me know) on: Linux charizard 2.6.8-1.521 #1 Mon Aug 16 09:01:18 EDT 2004 i686 i686 i386 GNU/Linux Yeah, the syslog details are definitely wanted. Furthermore, if you could rebuild with CONFIG_USB_SERIAL_DEBUG and see whether it is oopsable then too and what shows up in the log it would be appreciated too. In the oops above, the backtrace doesn't make much sense to me. Although edge_startup+0xd3/0x243 is the call to get_manufacturing_desc (at least in the kernel-smp-2.6.7-1.478 I was objdumping, but the size of the routine is the same), get_manufacturing_desc makes no tail calls so a call location within get_manufacturing_desc should show up in the backtrace too). I wonder e.g. whether char string[30]; is not overflowed by one of the unicode_to_ascii calls. Sorry I've been asleep at the switch. Mean time, I've upgraded to FC3: Linux charizard 2.6.9-1.678_FC3 #1 Mon Nov 15 18:28:07 EST 2004 i686 i686 i386 GNU/Linux (the stock 2.6.9-1.667 kernel has the same problem). Here's what you get: Nov 21 17:04:59 charizard kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic Nov 21 17:04:59 charizard kernel: usbcore: registered new driver usbserial_generic Nov 21 17:04:59 charizard kernel: usbcore: registered new driver usbserial Nov 21 17:04:59 charizard kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0 Nov 21 17:04:59 charizard kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 2 port adapter Nov 21 17:04:59 charizard kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 4 port adapter Nov 21 17:04:59 charizard kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 8 port adapter Nov 21 17:04:59 charizard kernel: io_edgeport 1-1:1.0: Edgeport 2 port adapter converter detected Nov 21 17:04:59 charizard kernel: usb 1-1: Inside Out Network Edgeport/2i detected Nov 21 17:04:59 charizard usb.agent[3657]: ... can't load module io_edgeport Nov 21 17:04:59 charizard usb.agent[3657]: missing kernel or user mode driver io_edgeport Nov 21 17:05:00 charizard kernel: Unable to handle kernel paging request at virtual address 00b93ab8 Nov 21 17:05:00 charizard kernel: printing eip: Nov 21 17:05:00 charizard kernel: 00b93ab8 Nov 21 17:05:00 charizard kernel: *pde = 00000000 Nov 21 17:05:00 charizard kernel: Oops: 0000 [#1] Nov 21 17:05:01 charizard kernel: Modules linked in: io_edgeport usbserial usb_storage scsi_mod parport_pc lp parport autofs4 i2c_dev i2c_core orinoco_cs orinoco hermes ds sunrpc microcode dm_mod button battery ac md5 ipv6 ohci1394 ieee1394 yenta_socket pcmcia_core uhci_hcd hw_random snd_intel8x0m snd_intel8x0 snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc gameport snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore 3c59x floppy ext3 jbd Nov 21 17:05:01 charizard kernel: CPU: 0 Nov 21 17:05:01 charizard kernel: EIP: 0060:[<00b93ab8>] Not tainted VLI Nov 21 17:05:01 charizard kernel: EFLAGS: 00010213 (2.6.9-1.678_FC3) Nov 21 17:05:02 charizard kernel: EIP is at 0xb93ab8 Nov 21 17:05:02 charizard kernel: eax: 1a2f8e28 ebx: 19cad880 ecx: ffffffff edx: 00000000 Nov 21 17:05:02 charizard kernel: esi: 1a2f8e28 edi: 19cadd0c ebp: 29d80c00 esp: 1a2f8e28 Nov 21 17:05:02 charizard kernel: ds: 007b es: 007b ss: 0068 Nov 21 17:05:03 charizard kernel: Process modprobe (pid: 3693, threadinfo=1a2f8000 task=19cdf730) Nov 21 17:05:03 charizard kernel: Stack: 2d303533 30303031 2d33312d 02120042 00000013 19cad880 19cadd0c 021202be Nov 21 17:05:03 charizard kernel: 00000013 19cad880 2ab93f46 2ab95a4f 02332440 29d80d34 19cad880 00000000 Nov 21 17:05:03 charizard kernel: 1c1df200 270e2e00 2aba3b20 1f30b380 00000001 2ab33522 19d1a870 00000000 Nov 21 17:05:04 charizard kernel: Call Trace: Nov 21 17:05:04 charizard kernel: [<02120042>] __call_console_drivers+0x1f/0x40 Nov 21 17:05:04 charizard kernel: [<021202be>] printk+0xe/0x11 Nov 21 17:05:04 charizard kernel: [<2ab93f46>] edge_startup+0xd3/0x243 [io_edgeport] Nov 21 17:05:04 charizard kernel: [<2ab33522>] usb_serial_probe+0x94e/0xae8 [usbserial] Nov 21 17:05:05 charizard kernel: [<0218351e>] alloc_inode+0xf6/0x17f Nov 21 17:05:05 charizard kernel: [<02181447>] d_instantiate+0x144/0x147 Nov 21 17:05:05 charizard kernel: [<021aad64>] sysfs_create+0x77/0x9c Nov 21 17:05:05 charizard kernel: [<021ab681>] create_dir+0x83/0xa0 Nov 21 17:05:06 charizard kernel: [<0227c327>] usb_probe_interface+0x41/0x4b Nov 21 17:05:06 charizard kernel: [<0224320b>] bus_match+0x27/0x45 Nov 21 17:05:06 charizard kernel: [<022432c5>] driver_attach+0x37/0x66 Nov 21 17:05:06 charizard kernel: [<0224367a>] bus_add_driver+0x77/0x97 Nov 21 17:05:06 charizard kernel: [<02243a98>] driver_register+0x51/0x58 Nov 21 17:05:07 charizard kernel: [<2ab338d4>] usb_serial_register+0x44/0x80 [usbserial] Nov 21 17:05:07 charizard kernel: [<0227c3bc>] usb_register+0x3b/0x7a Nov 21 17:05:07 charizard kernel: [<2a98103b>] edgeport_init+0x3b/0x78 [io_edgeport] Nov 21 17:05:08 charizard kernel: [<0213bbf6>] sys_init_module+0x207/0x2ef Nov 21 17:05:08 charizard kernel: Code: Bad EIP value. I'd be happy to run with more debugging, but have no idea how to enable USB_SERIAL_DEBUG - please let me know. In FC2, I recompiled the module without optimization and that did somewhat resolve the problem - the driver was still unstable. Sorry I've been asleep at the switch. Mean time, I've upgraded to FC3: Linux charizard 2.6.9-1.678_FC3 #1 Mon Nov 15 18:28:07 EST 2004 i686 i686 i386 GNU/Linux (the stock 2.6.9-1.667 kernel has the same problem). Here's what you get: Nov 21 17:04:59 charizard kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic Nov 21 17:04:59 charizard kernel: usbcore: registered new driver usbserial_generic Nov 21 17:04:59 charizard kernel: usbcore: registered new driver usbserial Nov 21 17:04:59 charizard kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0 Nov 21 17:04:59 charizard kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 2 port adapter Nov 21 17:04:59 charizard kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 4 port adapter Nov 21 17:04:59 charizard kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 8 port adapter Nov 21 17:04:59 charizard kernel: io_edgeport 1-1:1.0: Edgeport 2 port adapter converter detected Nov 21 17:04:59 charizard kernel: usb 1-1: Inside Out Network Edgeport/2i detected Nov 21 17:04:59 charizard usb.agent[3657]: ... can't load module io_edgeport Nov 21 17:04:59 charizard usb.agent[3657]: missing kernel or user mode driver io_edgeport Nov 21 17:05:00 charizard kernel: Unable to handle kernel paging request at virtual address 00b93ab8 Nov 21 17:05:00 charizard kernel: printing eip: Nov 21 17:05:00 charizard kernel: 00b93ab8 Nov 21 17:05:00 charizard kernel: *pde = 00000000 Nov 21 17:05:00 charizard kernel: Oops: 0000 [#1] Nov 21 17:05:01 charizard kernel: Modules linked in: io_edgeport usbserial usb_storage scsi_mod parport_pc lp parport autofs4 i2c_dev i2c_core orinoco_cs orinoco hermes ds sunrpc microcode dm_mod button battery ac md5 ipv6 ohci1394 ieee1394 yenta_socket pcmcia_core uhci_hcd hw_random snd_intel8x0m snd_intel8x0 snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc gameport snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore 3c59x floppy ext3 jbd Nov 21 17:05:01 charizard kernel: CPU: 0 Nov 21 17:05:01 charizard kernel: EIP: 0060:[<00b93ab8>] Not tainted VLI Nov 21 17:05:01 charizard kernel: EFLAGS: 00010213 (2.6.9-1.678_FC3) Nov 21 17:05:02 charizard kernel: EIP is at 0xb93ab8 Nov 21 17:05:02 charizard kernel: eax: 1a2f8e28 ebx: 19cad880 ecx: ffffffff edx: 00000000 Nov 21 17:05:02 charizard kernel: esi: 1a2f8e28 edi: 19cadd0c ebp: 29d80c00 esp: 1a2f8e28 Nov 21 17:05:02 charizard kernel: ds: 007b es: 007b ss: 0068 Nov 21 17:05:03 charizard kernel: Process modprobe (pid: 3693, threadinfo=1a2f8000 task=19cdf730) Nov 21 17:05:03 charizard kernel: Stack: 2d303533 30303031 2d33312d 02120042 00000013 19cad880 19cadd0c 021202be Nov 21 17:05:03 charizard kernel: 00000013 19cad880 2ab93f46 2ab95a4f 02332440 29d80d34 19cad880 00000000 Nov 21 17:05:03 charizard kernel: 1c1df200 270e2e00 2aba3b20 1f30b380 00000001 2ab33522 19d1a870 00000000 Nov 21 17:05:04 charizard kernel: Call Trace: Nov 21 17:05:04 charizard kernel: [<02120042>] __call_console_drivers+0x1f/0x40 Nov 21 17:05:04 charizard kernel: [<021202be>] printk+0xe/0x11 Nov 21 17:05:04 charizard kernel: [<2ab93f46>] edge_startup+0xd3/0x243 [io_edgeport] Nov 21 17:05:04 charizard kernel: [<2ab33522>] usb_serial_probe+0x94e/0xae8 [usbserial] Nov 21 17:05:05 charizard kernel: [<0218351e>] alloc_inode+0xf6/0x17f Nov 21 17:05:05 charizard kernel: [<02181447>] d_instantiate+0x144/0x147 Nov 21 17:05:05 charizard kernel: [<021aad64>] sysfs_create+0x77/0x9c Nov 21 17:05:05 charizard kernel: [<021ab681>] create_dir+0x83/0xa0 Nov 21 17:05:06 charizard kernel: [<0227c327>] usb_probe_interface+0x41/0x4b Nov 21 17:05:06 charizard kernel: [<0224320b>] bus_match+0x27/0x45 Nov 21 17:05:06 charizard kernel: [<022432c5>] driver_attach+0x37/0x66 Nov 21 17:05:06 charizard kernel: [<0224367a>] bus_add_driver+0x77/0x97 Nov 21 17:05:06 charizard kernel: [<02243a98>] driver_register+0x51/0x58 Nov 21 17:05:07 charizard kernel: [<2ab338d4>] usb_serial_register+0x44/0x80 [usbserial] Nov 21 17:05:07 charizard kernel: [<0227c3bc>] usb_register+0x3b/0x7a Nov 21 17:05:07 charizard kernel: [<2a98103b>] edgeport_init+0x3b/0x78 [io_edgeport] Nov 21 17:05:08 charizard kernel: [<0213bbf6>] sys_init_module+0x207/0x2ef Nov 21 17:05:08 charizard kernel: Code: Bad EIP value. I'd be happy to run with more debugging, but have no idea how to enable USB_SERIAL_DEBUG - please let me know. In FC2, I recompiled the module without optimization and that did somewhat resolve the problem - the driver was still unstable. With these two set (I have a problem with a flash stick also): CONFIG_USB_DEBUG=y CONFIG_USB_STORAGE_DEBUG=y I get: drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic usbserial_generic 1-1:1.0: usb_probe_interface usbserial_generic 1-1:1.0: usb_probe_interface - got id usbcore: registered new driver usbserial_generic usbcore: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0 drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 2 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 4 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 8 port adapter io_edgeport 1-1:1.0: usb_probe_interface io_edgeport 1-1:1.0: usb_probe_interface - got id io_edgeport 1-1:1.0: Edgeport 2 port adapter converter detected usb 1-1: Inside Out Network Edgeport/2i detected usb 1-1: Edgeport 2 port adapter converter now attached to ttyUSB0 usb 1-1: Edgeport 2 port adapter converter now attached to ttyUSB1 usbcore: registered new driver io_edgeport drivers/usb/serial/io_edgeport.c: Edgeport USB Serial Driver v2.3 I haven't tested much but: ls > /dev/ttyUSB0 causes lights to flash on the device, doesn't generate any log messages and doesn't hang the system. I recompiled the FC3 kernel, using the FC3-provided kernel-2.6.9-i686-smp.config config file from the kernel source RPM (yes, I did a rpmbuild with the kernel spec file too to get a properly patched tree) with: CONFIG_USB_DEBUG=y CONFIG_USB_STORAGE_DEBUG=y EXTRAVERSION= -1.667 in Makefile but to no avail: plugging in my Edgeport to a hub still causes an oops, but with more debugging information. Here is dmesg output: HiSax: TeiMgr Revision 2.20.2.3 HiSax: Layer3 Revision 2.22.2.3 HiSax: LinkLayer Revision 2.59.2.4 ehci_hcd: block sizes: qh 128 qtd 96 itd 192 sitd 96 ACPI: PCI interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 177 ehci_hcd 0000:00:13.2: EHCI Host Controller ehci_hcd 0000:00:13.2: reset hcs_params 0x2306 dbg=0 cc=2 pcc=3 ordered !ppc ports=6 ehci_hcd 0000:00:13.2: reset hcc_params a012 thresh 1 uframes 256/512/1024 ehci_hcd 0000:00:13.2: capability 0001 at a0 ehci_hcd 0000:00:13.2: irq 177, pci mem 7e95e000 SELinux: initialized (dev usbdevfs, type usbdevfs), uses genfs_contexts ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:13.2: reset command 080002 (park)=0 ithresh=8 period=1024 Reset HALT ehci_hcd 0000:00:13.2: init command 010009 (park)=0 ithresh=1 period=256 RUN ehci_hcd 0000:00:13.2: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10 usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: default language 0x0409 usb usb1: Product: EHCI Host Controller usb usb1: Manufacturer: Linux 2.6.9-1.667smp ehci_hcd usb usb1: SerialNumber: 0000:00:13.2 usb usb1: hotplug usb usb1: adding 1-0:1.0 (config #1, interface 0) usb 1-0:1.0: hotplug hub 1-0:1.0: usb_probe_interface hub 1-0:1.0: usb_probe_interface - got id hub 1-0:1.0: USB hub found hub 1-0:1.0: 6 ports detected hub 1-0:1.0: standalone hub hub 1-0:1.0: ganged power switching hub 1-0:1.0: individual port over-current protection hub 1-0:1.0: Single TT hub 1-0:1.0: TT requires at most 8 FS bit times hub 1-0:1.0: power on to power good time: 20ms hub 1-0:1.0: local power source is good hub 1-0:1.0: enabling power on all ports ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI) ohci_hcd: block sizes: ed 64 td 64 ACPI: PCI interrupt 0000:00:13.0[A] -> GSI 19 (level, low) -> IRQ 177 ohci_hcd 0000:00:13.0: OHCI Host Controller ohci_hcd 0000:00:13.0: USB HC TakeOver from BIOS/SMM ohci_hcd 0000:00:13.0: reset, control = 0x84 ohci_hcd 0000:00:13.0: irq 177, pci mem 7e960000 ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2 usb usb2: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: default language 0x0409 usb usb2: Product: OHCI Host Controller usb usb2: Manufacturer: Linux 2.6.9-1.667smp ohci_hcd usb usb2: SerialNumber: 0000:00:13.0 usb usb2: hotplug usb usb2: adding 2-0:1.0 (config #1, interface 0) usb 2-0:1.0: hotplug hub 2-0:1.0: usb_probe_interface hub 2-0:1.0: usb_probe_interface - got id hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected hub 2-0:1.0: standalone hub hub 2-0:1.0: no power switching (usb 1.0) hub 2-0:1.0: global over-current protection hub 2-0:1.0: power on to power good time: 4ms hub 2-0:1.0: local power source is good hub 2-0:1.0: no over-current condition exists ohci_hcd 0000:00:13.0: created debug files ohci_hcd 0000:00:13.0: OHCI controller state ohci_hcd 0000:00:13.0: OHCI 1.0, with legacy support registers ohci_hcd 0000:00:13.0: control 0x083 HCFS=operational CBSR=3 ohci_hcd 0000:00:13.0: cmdstatus 0x00000 SOC=0 ohci_hcd 0000:00:13.0: intrstatus 0x00000044 RHSC SF ohci_hcd 0000:00:13.0: intrenable 0x8000001a MIE UE RD WDH ohci_hcd 0000:00:13.0: hcca frame #0020 ohci_hcd 0000:00:13.0: roothub.a 02000203 POTPGT=2 NPS NDP=3 ohci_hcd 0000:00:13.0: roothub.b 00000000 PPCM=0000 DR=0000 ohci_hcd 0000:00:13.0: roothub.status 00008000 DRWE ohci_hcd 0000:00:13.0: roothub.portstatus [0] 0x00000100 PPS ohci_hcd 0000:00:13.0: roothub.portstatus [1] 0x00000100 PPS ohci_hcd 0000:00:13.0: roothub.portstatus [2] 0x00000100 PPS ACPI: PCI interrupt 0000:00:13.1[A] -> GSI 19 (level, low) -> IRQ 177 ohci_hcd 0000:00:13.1: OHCI Host Controller ohci_hcd 0000:00:13.1: USB HC TakeOver from BIOS/SMM ohci_hcd 0000:00:13.1: reset, control = 0x84 ohci_hcd 0000:00:13.1: irq 177, pci mem 7e962000 ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3 usb usb3: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb3: default language 0x0409 usb usb3: Product: OHCI Host Controller usb usb3: Manufacturer: Linux 2.6.9-1.667smp ohci_hcd usb usb3: SerialNumber: 0000:00:13.1 ehci_hcd 0000:00:13.2: GetStatus port 3 status 001803 POWER sig=j CSC CONNECT hub 1-0:1.0: port 3, status 0501, change 0001, 480 Mb/s ohci_hcd 0000:00:13.0: suspend root hub usb usb3: hotplug hub 1-0:1.0: debounce: port 3: total 100ms stable 100ms status 0x501 hub 1-0:1.0: port 3 not reset yet, waiting 50ms ehci_hcd 0000:00:13.2: port 3 high speed ehci_hcd 0000:00:13.2: GetStatus port 3 status 001005 POWER sig=se0 PE CONNECT usb 1-3: new high speed USB device using address 2 ehci_hcd 0000:00:13.2: devpath 3 ep0out 3strikes usb usb3: adding 3-0:1.0 (config #1, interface 0) usb 3-0:1.0: hotplug hub 3-0:1.0: usb_probe_interface hub 3-0:1.0: usb_probe_interface - got id hub 3-0:1.0: USB hub found hub 3-0:1.0: 3 ports detected hub 3-0:1.0: standalone hub hub 3-0:1.0: no power switching (usb 1.0) hub 3-0:1.0: global over-current protection hub 3-0:1.0: power on to power good time: 4ms hub 3-0:1.0: local power source is good hub 3-0:1.0: no over-current condition exists ohci_hcd 0000:00:13.1: created debug files ohci_hcd 0000:00:13.1: OHCI controller state ohci_hcd 0000:00:13.1: OHCI 1.0, with legacy support registers ohci_hcd 0000:00:13.1: control 0x083 HCFS=operational CBSR=3 ohci_hcd 0000:00:13.1: cmdstatus 0x00000 SOC=0 ohci_hcd 0000:00:13.1: intrstatus 0x00000044 RHSC SF ohci_hcd 0000:00:13.1: intrenable 0x8000001a MIE UE RD WDH ohci_hcd 0000:00:13.1: hcca frame #035d ohci_hcd 0000:00:13.1: roothub.a 02000203 POTPGT=2 NPS NDP=3 ohci_hcd 0000:00:13.1: roothub.b 00000000 PPCM=0000 DR=0000 ohci_hcd 0000:00:13.1: roothub.status 00008000 DRWE ohci_hcd 0000:00:13.1: roothub.portstatus [0] 0x00000100 PPS ohci_hcd 0000:00:13.1: roothub.portstatus [1] 0x00000100 PPS ohci_hcd 0000:00:13.1: roothub.portstatus [2] 0x00000100 PPS usb 1-3: new device strings: Mfr=0, Product=0, SerialNumber=0 usb 1-3: hotplug usb 1-3: adding 1-3:1.0 (config #1, interface 0) usb 1-3:1.0: hotplug hub 1-3:1.0: usb_probe_interface hub 1-3:1.0: usb_probe_interface - got id hub 1-3:1.0: USB hub found hub 1-3:1.0: 4 ports detected hub 1-3:1.0: standalone hub hub 1-3:1.0: individual port power switching hub 1-3:1.0: individual port over-current protection hub 1-3:1.0: Single TT hub 1-3:1.0: TT requires at most 16 FS bit times hub 1-3:1.0: Port indicators are supported hub 1-3:1.0: power on to power good time: 0ms hub 1-3:1.0: local power source is good drivers/usb/host/ehci-sched.c: scheduled qh 7b96f100 usecs 7/0 period 256.0 starting 255.0 (gap 0) hub 1-3:1.0: enabling power on all ports ohci_hcd 0000:00:13.1: suspend root hub ohci1394: $Rev: 1223 $ Ben Collins <bcollins> ACPI: PCI interrupt 0000:02:06.0[A] -> GSI 18 (level, low) -> IRQ 201 ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[201] MMIO=[ec111000-ec1117ff] Max Packet=[2048] md: Autodetecting RAID arrays. md: autorun ... md: ... autorun DONE. ieee1394: Host added: ID:BUS[0-00:1023] GUID[00301bb20000f271] ACPI: Power Button (FF) [PWRF] EXT3 FS on dm-0, internal journal cdrom: open failed. kjournald starting. Commit interval 5 seconds EXT3 FS on md0, internal journal EXT3-fs: mounted filesystem with ordered data mode. SELinux: initialized (dev md0, type ext3), uses xattr SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs Adding 4192888k swap on /dev/md1. Priority:-1 extents:1 SELinux: initialized (dev binfmt_misc, type binfmt_misc), uses genfs_contexts parport0: PC-style at 0x378 [PCSPP,TRISTATE] ip_tables: (C) 2000-2002 Netfilter core team ip_conntrack version 2.1 (8192 buckets, 65536 max) - 340 bytes per conntrack eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 SELinux: initialized (dev rpc_pipefs, type rpc_pipefs), uses genfs_contexts i2c /dev entries driver NET: Registered protocol family 10 Disabled Privacy Extensions on device 02328ce0(lo) IPv6 over IPv4 tunneling driver divert: not allocating divert_blk for non-ethernet device sit0 parport0: PC-style at 0x378 [PCSPP,TRISTATE] lp0: using parport0 (polling). lp0: console ready eth0: no IPv6 routers present ACPI: PCI interrupt 0000:01:05.0[A] -> GSI 16 (level, low) -> IRQ 185 [drm] Initialized radeon 1.11.0 20020828 on minor 0: agpgart: Found an AGP 3.0 compliant device at 0000:00:00.0. agpgart: X passes broken AGP3 flags (1f00020f). Fixed. agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode agpgart: Putting AGP V3 device at 0000:01:05.0 into 8x mode [drm] Loading R200 Microcode ehci_hcd 0000:00:13.2: GetStatus port 4 status 001803 POWER sig=j CSC CONNECT hub 1-0:1.0: port 4, status 0501, change 0001, 480 Mb/s hub 1-0:1.0: debounce: port 4: total 100ms stable 100ms status 0x501 hub 1-0:1.0: port 4 not reset yet, waiting 50ms ehci_hcd 0000:00:13.2: port 4 full speed --> companion ehci_hcd 0000:00:13.2: GetStatus port 4 status 003801 POWER OWNER sig=j CONNECT ohci_hcd 0000:00:13.1: wakeup ohci_hcd 0000:00:13.1: GetStatus roothub.portstatus [0] = 0x00010101 CSC PPS CCS hub 3-0:1.0: port 1, status 0101, change 0001, 12 Mb/s hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101 ohci_hcd 0000:00:13.1: CTRL: TypeReq=0x2301 val=0x2 idx=0x0 len=0 ==> -32 ohci_hcd 0000:00:13.1: GetStatus roothub.portstatus [0] = 0x00100103 PRSC PPS PES CCS usb 3-1: new full speed USB device using address 2 usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=5 usb 3-1: default language 0x0409 usb 3-1: Product: Edgeport/8 usb 3-1: Manufacturer: Inside Out Networks usb 3-1: SerialNumber: V22116435-0 usb 3-1: hotplug usb 3-1: adding 3-1:1.0 (config #1, interface 0) usb 3-1:1.0: hotplug drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic usbserial_generic 3-1:1.0: usb_probe_interface usbserial_generic 3-1:1.0: usb_probe_interface - got id usbcore: registered new driver usbserial_generic usbcore: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0 drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 2 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 4 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 8 port adapter io_edgeport 3-1:1.0: usb_probe_interface io_edgeport 3-1:1.0: usb_probe_interface - got id io_edgeport 3-1:1.0: Edgeport 8 port adapter converter detected usb 3-1: Inside Out Network Edgeport/8 detected Unable to handle kernel paging request at virtual address 00e40975 printing eip: 00e40975 *pde = 00000000 Oops: 0000 [#1] SMP Modules linked in: io_edgeport(U) usbserial(U) radeon(U) parport_pc(U) lp(U) parport(U) md5(U) ipv6(U) autofs4(U) i2c_dev(U) i2c_core(U) sunrpc(U) ipt_REJECT(U) ipt_state(U) ip_conntrack(U) iptable_filter(U) ip_tables(U) button(U) battery(U) ac(U) ohci1394(U) ieee1394(U) ohci_hcd(U) ehci_hcd(U) hisax(U) crc_ccitt(U) isdn(U) slhc(U) snd_atiixp(U) snd_ac97_codec(U) snd_pcm_oss(U) snd_mixer_oss(U) snd_pcm(U) snd_timer(U) snd(U) soundcore(U) snd_page_alloc(U) 8139too(U) mii(U) dm_snapshot(U) dm_zero(U) dm_mirror(U) ext3(U) jbd(U) raid1(U) dm_mod(U) CPU: 1 EIP: 0060:[<00e40975>] Not tainted VLI EFLAGS: 00010213 (2.6.9-1.667smp) EIP is at 0xe40975 eax: 6d9afe40 ebx: 76bd6700 ecx: ffffffff edx: 00000000 esi: 6d9afe40 edi: 76bd6b8c ebp: 7c408c00 esp: 6d9afe40 ds: 007b es: 007b ss: 0068 Process modprobe (pid: 3684, threadinfo=6d9af000 task=6d174d10) Stack: 31323256 33343631 00302d35 02120200 00000013 76bd6700 76bd6b8c 02120153 00000013 76bd6700 7ee40e39 7ee42900 022e7fb6 7c408d24 76bd6700 7ee50d40 6d5a8240 00000000 76b7e180 00000002 39fc5800 7ed6d594 7aac3620 6d5a84c0 Call Trace: [<02120200>] vprintk+0xaa/0x14a [<02120153>] printk+0xe/0x11 [<7ee40e39>] edge_startup+0xd3/0x243 [io_edgeport] [<7ed6d594>] usb_serial_probe+0x990/0xb8d [usbserial] [<022b8ff3>] __cond_resched+0x14/0x39 [<0219b339>] inode_doinit_with_dentry+0x4b/0x595 [<0212004e>] call_console_drivers+0xb6/0xd8 [<02120374>] release_console_sem+0x75/0xa9 [<0212028c>] vprintk+0x136/0x14a [<02240383>] usb_probe_interface+0x8d/0x9f [<0220cf08>] bus_match+0x27/0x45 [<0220cfc2>] driver_attach+0x37/0x66 [<0220d380>] bus_add_driver+0x78/0x99 [<0224041d>] usb_register+0x38/0x77 [<7ea0b03b>] edgeport_init+0x3b/0x78 [io_edgeport] [<02133f22>] sys_init_module+0x116/0x238 Code: Bad EIP value. <7>ehci_hcd 0000:00:13.2: GetStatus port 4 status 001002 POWER sig=se0 CSC hub 1-0:1.0: port 4, status 0100, change 0001, 12 Mb/s hub 1-0:1.0: debounce: port 4: total 100ms stable 100ms status 0x100 ohci_hcd 0000:00:13.1: GetStatus roothub.portstatus [0] = 0x00030100 PESC CSC PPS hub 3-0:1.0: port 1, status 0100, change 0003, 12 Mb/s usb 3-1: USB disconnect, address 2 usb 3-1: usb_disable_device nuking all URBs usb 3-1: unregistering interface 3-1:1.0 The same Edgeport works fine on a different system using the 2.4.22 kernel in Fedora Core 1. I see 2.6.10 will have more USB (and UML) fixes; I can give that a try when it comes out. Can you retry with options io_edgeport debug=1 in /etc/modprobe.conf? Sure! I added options io_edgeport debug=1 to /etc/modprobe.conf, rebooted with the same kernel, and plugged in the edgeport. Here is the dmesg output: HiSax: Layer2 Revision 2.30.2.4 HiSax: TeiMgr Revision 2.20.2.3 HiSax: Layer3 Revision 2.22.2.3 HiSax: LinkLayer Revision 2.59.2.4 ehci_hcd: block sizes: qh 128 qtd 96 itd 192 sitd 96 ACPI: PCI interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 177 ehci_hcd 0000:00:13.2: EHCI Host Controller ehci_hcd 0000:00:13.2: reset hcs_params 0x2306 dbg=0 cc=2 pcc=3 ordered !ppc ports=6 ehci_hcd 0000:00:13.2: reset hcc_params a012 thresh 1 uframes 256/512/1024 ehci_hcd 0000:00:13.2: capability 0001 at a0 ehci_hcd 0000:00:13.2: irq 177, pci mem 7e95e000 SELinux: initialized (dev usbdevfs, type usbdevfs), uses genfs_contexts ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:13.2: reset command 080002 (park)=0 ithresh=8 period=1024 Reset HALT ehci_hcd 0000:00:13.2: init command 010009 (park)=0 ithresh=1 period=256 RUN ehci_hcd 0000:00:13.2: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10 usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: default language 0x0409 usb usb1: Product: EHCI Host Controller usb usb1: Manufacturer: Linux 2.6.9-1.667smp ehci_hcd usb usb1: SerialNumber: 0000:00:13.2 usb usb1: hotplug usb usb1: adding 1-0:1.0 (config #1, interface 0) usb 1-0:1.0: hotplug hub 1-0:1.0: usb_probe_interface hub 1-0:1.0: usb_probe_interface - got id hub 1-0:1.0: USB hub found hub 1-0:1.0: 6 ports detected hub 1-0:1.0: standalone hub hub 1-0:1.0: ganged power switching hub 1-0:1.0: individual port over-current protection hub 1-0:1.0: Single TT hub 1-0:1.0: TT requires at most 8 FS bit times hub 1-0:1.0: power on to power good time: 20ms hub 1-0:1.0: local power source is good hub 1-0:1.0: enabling power on all ports ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI) ohci_hcd: block sizes: ed 64 td 64 ACPI: PCI interrupt 0000:00:13.0[A] -> GSI 19 (level, low) -> IRQ 177 ohci_hcd 0000:00:13.0: OHCI Host Controller ohci_hcd 0000:00:13.0: USB HC TakeOver from BIOS/SMM ohci_hcd 0000:00:13.0: reset, control = 0x84 ohci_hcd 0000:00:13.0: irq 177, pci mem 7e960000 ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2 usb usb2: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: default language 0x0409 usb usb2: Product: OHCI Host Controller usb usb2: Manufacturer: Linux 2.6.9-1.667smp ohci_hcd usb usb2: SerialNumber: 0000:00:13.0 usb usb2: hotplug usb usb2: adding 2-0:1.0 (config #1, interface 0) usb 2-0:1.0: hotplug hub 2-0:1.0: usb_probe_interface hub 2-0:1.0: usb_probe_interface - got id hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected hub 2-0:1.0: standalone hub hub 2-0:1.0: no power switching (usb 1.0) hub 2-0:1.0: global over-current protection hub 2-0:1.0: power on to power good time: 4ms hub 2-0:1.0: local power source is good hub 2-0:1.0: no over-current condition exists ohci_hcd 0000:00:13.0: created debug files ohci_hcd 0000:00:13.0: OHCI controller state ohci_hcd 0000:00:13.0: OHCI 1.0, with legacy support registers ohci_hcd 0000:00:13.0: control 0x083 HCFS=operational CBSR=3 ohci_hcd 0000:00:13.0: cmdstatus 0x00000 SOC=0 ohci_hcd 0000:00:13.0: intrstatus 0x00000044 RHSC SF ohci_hcd 0000:00:13.0: intrenable 0x8000001a MIE UE RD WDH ohci_hcd 0000:00:13.0: hcca frame #001b ohci_hcd 0000:00:13.0: roothub.a 02000203 POTPGT=2 NPS NDP=3 ohci_hcd 0000:00:13.0: roothub.b 00000000 PPCM=0000 DR=0000 ohci_hcd 0000:00:13.0: roothub.status 00008000 DRWE ohci_hcd 0000:00:13.0: roothub.portstatus [0] 0x00000100 PPS ohci_hcd 0000:00:13.0: roothub.portstatus [1] 0x00000100 PPS ohci_hcd 0000:00:13.0: roothub.portstatus [2] 0x00000100 PPS ACPI: PCI interrupt 0000:00:13.1[A] -> GSI 19 (level, low) -> IRQ 177 ohci_hcd 0000:00:13.1: OHCI Host Controller ohci_hcd 0000:00:13.1: USB HC TakeOver from BIOS/SMM ohci_hcd 0000:00:13.1: reset, control = 0x84 ohci_hcd 0000:00:13.1: irq 177, pci mem 7e962000 ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3 ehci_hcd 0000:00:13.2: GetStatus port 3 status 001803 POWER sig=j CSC CONNECT hub 1-0:1.0: port 3, status 0501, change 0001, 480 Mb/s hub 1-0:1.0: debounce: port 3: total 100ms stable 100ms status 0x501 ohci_hcd 0000:00:13.0: suspend root hub hub 1-0:1.0: port 3 not reset yet, waiting 50ms ehci_hcd 0000:00:13.2: port 3 high speed ehci_hcd 0000:00:13.2: GetStatus port 3 status 001005 POWER sig=se0 PE CONNECT usb 1-3: new high speed USB device using address 2 ehci_hcd 0000:00:13.2: devpath 3 ep0out 3strikes usb usb3: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb3: default language 0x0409 usb usb3: Product: OHCI Host Controller usb usb3: Manufacturer: Linux 2.6.9-1.667smp ohci_hcd usb usb3: SerialNumber: 0000:00:13.1 usb usb3: hotplug usb usb3: adding 3-0:1.0 (config #1, interface 0) usb 3-0:1.0: hotplug hub 3-0:1.0: usb_probe_interface hub 3-0:1.0: usb_probe_interface - got id hub 3-0:1.0: USB hub found hub 3-0:1.0: 3 ports detected hub 3-0:1.0: standalone hub hub 3-0:1.0: no power switching (usb 1.0) hub 3-0:1.0: global over-current protection hub 3-0:1.0: power on to power good time: 4ms hub 3-0:1.0: local power source is good hub 3-0:1.0: no over-current condition exists ohci_hcd 0000:00:13.1: created debug files ohci_hcd 0000:00:13.1: OHCI controller state ohci_hcd 0000:00:13.1: OHCI 1.0, with legacy support registers ohci_hcd 0000:00:13.1: control 0x083 HCFS=operational CBSR=3 ohci_hcd 0000:00:13.1: cmdstatus 0x00000 SOC=0 ohci_hcd 0000:00:13.1: intrstatus 0x00000044 RHSC SF ohci_hcd 0000:00:13.1: intrenable 0x8000001a MIE UE RD WDH ohci_hcd 0000:00:13.1: hcca frame #018a ohci_hcd 0000:00:13.1: roothub.a 02000203 POTPGT=2 NPS NDP=3 ohci_hcd 0000:00:13.1: roothub.b 00000000 PPCM=0000 DR=0000 ohci_hcd 0000:00:13.1: roothub.status 00008000 DRWE ohci_hcd 0000:00:13.1: roothub.portstatus [0] 0x00000100 PPS ohci_hcd 0000:00:13.1: roothub.portstatus [1] 0x00000100 PPS ohci_hcd 0000:00:13.1: roothub.portstatus [2] 0x00000100 PPS ohci_hcd 0000:00:13.1: suspend root hub usb 1-3: new device strings: Mfr=0, Product=0, SerialNumber=0 usb 1-3: hotplug usb 1-3: adding 1-3:1.0 (config #1, interface 0) usb 1-3:1.0: hotplug hub 1-3:1.0: usb_probe_interface hub 1-3:1.0: usb_probe_interface - got id hub 1-3:1.0: USB hub found hub 1-3:1.0: 4 ports detected hub 1-3:1.0: standalone hub hub 1-3:1.0: individual port power switching hub 1-3:1.0: individual port over-current protection hub 1-3:1.0: Single TT hub 1-3:1.0: TT requires at most 16 FS bit times hub 1-3:1.0: Port indicators are supported hub 1-3:1.0: power on to power good time: 0ms hub 1-3:1.0: local power source is good drivers/usb/host/ehci-sched.c: scheduled qh 7ba6c100 usecs 7/0 period 256.0 starting 255.0 (gap 0) hub 1-3:1.0: enabling power on all ports ohci1394: $Rev: 1223 $ Ben Collins <bcollins> ACPI: PCI interrupt 0000:02:06.0[A] -> GSI 18 (level, low) -> IRQ 201 ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[201] MMIO=[ec111000-ec1117ff] Max Packet=[2048] md: Autodetecting RAID arrays. md: autorun ... md: ... autorun DONE. ieee1394: Host added: ID:BUS[0-00:1023] GUID[00301bb20000f271] ACPI: Power Button (FF) [PWRF] EXT3 FS on dm-0, internal journal cdrom: open failed. kjournald starting. Commit interval 5 seconds EXT3 FS on md0, internal journal EXT3-fs: mounted filesystem with ordered data mode. SELinux: initialized (dev md0, type ext3), uses xattr SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs Adding 4192888k swap on /dev/md1. Priority:-1 extents:1 SELinux: initialized (dev binfmt_misc, type binfmt_misc), uses genfs_contexts parport0: PC-style at 0x378 [PCSPP,TRISTATE] ip_tables: (C) 2000-2002 Netfilter core team ip_conntrack version 2.1 (8192 buckets, 65536 max) - 340 bytes per conntrack eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 SELinux: initialized (dev rpc_pipefs, type rpc_pipefs), uses genfs_contexts i2c /dev entries driver NET: Registered protocol family 10 Disabled Privacy Extensions on device 02328ce0(lo) IPv6 over IPv4 tunneling driver divert: not allocating divert_blk for non-ethernet device sit0 parport0: PC-style at 0x378 [PCSPP,TRISTATE] lp0: using parport0 (polling). lp0: console ready eth0: no IPv6 routers present ACPI: PCI interrupt 0000:01:05.0[A] -> GSI 16 (level, low) -> IRQ 185 [drm] Initialized radeon 1.11.0 20020828 on minor 0: agpgart: Found an AGP 3.0 compliant device at 0000:00:00.0. agpgart: X passes broken AGP3 flags (1f00020f). Fixed. agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode agpgart: Putting AGP V3 device at 0000:01:05.0 into 8x mode [drm] Loading R200 Microcode ehci_hcd 0000:00:13.2: GetStatus port 4 status 001803 POWER sig=j CSC CONNECT hub 1-0:1.0: port 4, status 0501, change 0001, 480 Mb/s hub 1-0:1.0: debounce: port 4: total 100ms stable 100ms status 0x501 hub 1-0:1.0: port 4 not reset yet, waiting 50ms ehci_hcd 0000:00:13.2: port 4 full speed --> companion ehci_hcd 0000:00:13.2: GetStatus port 4 status 003801 POWER OWNER sig=j CONNECT ohci_hcd 0000:00:13.1: wakeup ohci_hcd 0000:00:13.1: GetStatus roothub.portstatus [0] = 0x00010101 CSC PPS CCS hub 3-0:1.0: port 1, status 0101, change 0001, 12 Mb/s hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101 ohci_hcd 0000:00:13.1: CTRL: TypeReq=0x2301 val=0x2 idx=0x0 len=0 ==> -32 ohci_hcd 0000:00:13.1: GetStatus roothub.portstatus [0] = 0x00100103 PRSC PPS PES CCS usb 3-1: new full speed USB device using address 2 usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=5 usb 3-1: default language 0x0409 usb 3-1: Product: Edgeport/8 usb 3-1: Manufacturer: Inside Out Networks usb 3-1: SerialNumber: V22116435-0 usb 3-1: hotplug usb 3-1: adding 3-1:1.0 (config #1, interface 0) usb 3-1:1.0: hotplug drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic usbserial_generic 3-1:1.0: usb_probe_interface usbserial_generic 3-1:1.0: usb_probe_interface - got id usbcore: registered new driver usbserial_generic usbcore: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0 drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 2 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 4 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 8 port adapter io_edgeport 3-1:1.0: usb_probe_interface io_edgeport 3-1:1.0: usb_probe_interface - got id io_edgeport 3-1:1.0: Edgeport 8 port adapter converter detected drivers/usb/serial/io_edgeport.c: get_string - USB String ID = 1 drivers/usb/serial/io_edgeport.c: get_string - USB String ID = 2 usb 3-1: Inside Out Network Edgeport/8 detected drivers/usb/serial/io_edgeport.c: getting manufacturer descriptor drivers/usb/serial/io_edgeport.c: rom_read - ff, 7c00, 960 drivers/usb/serial/io_edgeport.c: **Manufacturer Descriptor drivers/usb/serial/io_edgeport.c: RomSize: 8K drivers/usb/serial/io_edgeport.c: RamSize: 32K drivers/usb/serial/io_edgeport.c: CpuRev: 1 drivers/usb/serial/io_edgeport.c: BoardRev: 1 drivers/usb/serial/io_edgeport.c: NumPorts: 8 drivers/usb/serial/io_edgeport.c: DescDate: 7/29/1999 drivers/usb/serial/io_edgeport.c: SerialNumber: V22116435-0 Unable to handle kernel paging request at virtual address 00e40975 printing eip: 00e40975 *pde = 00000000 Oops: 0000 [#1] SMP Modules linked in: io_edgeport(U) usbserial(U) radeon(U) parport_pc(U) lp(U) parport(U) md5(U) ipv6(U) autofs4(U) i2c_dev(U) i2c_core(U) sunrpc(U) ipt_REJECT(U) ipt_state(U) ip_conntrack(U) iptable_filter(U) ip_tables(U) button(U) battery(U) ac(U) ohci1394(U) ieee1394(U) ohci_hcd(U) ehci_hcd(U) hisax(U) crc_ccitt(U) isdn(U) slhc(U) snd_atiixp(U) snd_ac97_codec(U) snd_pcm_oss(U) snd_mixer_oss(U) snd_pcm(U) snd_timer(U) snd(U) soundcore(U) snd_page_alloc(U) 8139too(U) mii(U) dm_snapshot(U) dm_zero(U) dm_mirror(U) ext3(U) jbd(U) raid1(U) dm_mod(U) CPU: 0 EIP: 0060:[<00e40975>] Not tainted VLI EFLAGS: 00010213 (2.6.9-1.667smp) EIP is at 0xe40975 eax: 6e5e4e40 ebx: 77322580 ecx: ffffffff edx: 00000000 esi: 6e5e4e40 edi: 77322a0c ebp: 71ac7c00 esp: 6e5e4e40 ds: 007b es: 007b ss: 0068 Process modprobe (pid: 3444, threadinfo=6e5e4000 task=6e648c90) Stack: 31323256 33343631 00302d35 02120200 00000013 77322580 77322a0c 02120153 00000013 77322580 7ee40e39 7ee42900 022e7fb6 71ac7d24 77322580 7ee50d40 717252c0 00000000 7dd7cb80 00000002 7dc32400 7ed6d594 719c5900 71725340 Call Trace: [<02120200>] vprintk+0xaa/0x14a [<02120153>] printk+0xe/0x11 [<7ee40e39>] edge_startup+0xd3/0x243 [io_edgeport] [<7ed6d594>] usb_serial_probe+0x990/0xb8d [usbserial] [<022b8ff3>] __cond_resched+0x14/0x39 [<0219b339>] inode_doinit_with_dentry+0x4b/0x595 [<0212004e>] call_console_drivers+0xb6/0xd8 [<02120374>] release_console_sem+0x75/0xa9 [<0212028c>] vprintk+0x136/0x14a [<02240383>] usb_probe_interface+0x8d/0x9f [<0220cf08>] bus_match+0x27/0x45 [<0220cfc2>] driver_attach+0x37/0x66 [<0220d380>] bus_add_driver+0x78/0x99 [<0224041d>] usb_register+0x38/0x77 [<7ea0b03b>] edgeport_init+0x3b/0x78 [io_edgeport] [<02133f22>] sys_init_module+0x116/0x238 Code: Bad EIP value. <7>ehci_hcd 0000:00:13.2: GetStatus port 4 status 001002 POWER sig=se0 CSC hub 1-0:1.0: port 4, status 0100, change 0001, 12 Mb/s hub 1-0:1.0: debounce: port 4: total 100ms stable 100ms status 0x100 ohci_hcd 0000:00:13.1: GetStatus roothub.portstatus [0] = 0x00030100 PESC CSC PPS hub 3-0:1.0: port 1, status 0100, change 0003, 12 Mb/s usb 3-1: USB disconnect, address 2 usb 3-1: usb_disable_device nuking all URBs usb 3-1: unregistering interface 3-1:1.0 I've compiled a kernel (681_FC3 based) with CONFIG_USB_DEBUG set, and the io_edgeport debug=1 option in modprobe.conf. I get pretty much the same result: ehci_hcd: block sizes: qh 128 qtd 96 itd 192 sitd 96 ehci_hcd 0000:00:0f.2: EHCI Host Controller ehci_hcd 0000:00:0f.2: reset hcs_params 0x2395 dbg=0 cc=2 pcc=3 ports=5 ehci_hcd 0000:00:0f.2: reset portroute 1 0 1 0 0 ehci_hcd 0000:00:0f.2: reset hcc_params 0002 thresh 0 uframes 256/512/1024 ehci_hcd 0000:00:0f.2: irq 5, pci mem 2289af00 SELinux: initialized (dev usbdevfs, type usbdevfs), uses genfs_contexts ehci_hcd 0000:00:0f.2: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:0f.2: reset command 080002 (park)=0 ithresh=8 period=1024 Reset HALT ehci_hcd 0000:00:0f.2: init command 010009 (park)=0 ithresh=1 period=256 RUN ehci_hcd 0000:00:0f.2: USB 2.0 enabled, EHCI 0.95, driver 2004-May-10 ehci_hcd 0000:00:0f.2: supports USB remote wakeup usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: default language 0x0409 usb usb1: Product: EHCI Host Controller usb usb1: Manufacturer: Linux 2.6.9-prep ehci_hcd usb usb1: SerialNumber: 0000:00:0f.2 usb usb1: hotplug usb usb1: adding 1-0:1.0 (config #1, interface 0) usb 1-0:1.0: hotplug hub 1-0:1.0: usb_probe_interface hub 1-0:1.0: usb_probe_interface - got id hub 1-0:1.0: USB hub found hub 1-0:1.0: 5 ports detected hub 1-0:1.0: standalone hub hub 1-0:1.0: individual port power switching hub 1-0:1.0: individual port over-current protection hub 1-0:1.0: Single TT hub 1-0:1.0: TT requires at most 8 FS bit times hub 1-0:1.0: power on to power good time: 20ms hub 1-0:1.0: local power source is good hub 1-0:1.0: enabling power on all ports ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI) ohci_hcd: block sizes: ed 64 td 64 ohci_hcd 0000:00:0f.0: OHCI Host Controller ohci_hcd 0000:00:0f.0: reset, control = 0x0 ohci_hcd 0000:00:0f.0: irq 11, pci mem 2289c000 ohci_hcd 0000:00:0f.0: new USB bus registered, assigned bus number 2 ehci_hcd 0000:00:0f.2: GetStatus port 4 status 001403 POWER sig=k CSC CONNECT hub 1-0:1.0: port 4, status 0501, change 0001, 480 Mb/s usb usb2: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: default language 0x0409 usb usb2: Product: OHCI Host Controller usb usb2: Manufacturer: Linux 2.6.9-prep ohci_hcd usb usb2: SerialNumber: 0000:00:0f.0 usb usb2: hotplug usb usb2: adding 2-0:1.0 (config #1, interface 0) usb 2-0:1.0: hotplug hub 2-0:1.0: usb_probe_interface hub 2-0:1.0: usb_probe_interface - got id hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected hub 2-0:1.0: standalone hub hub 2-0:1.0: no power switching (usb 1.0) hub 2-0:1.0: global over-current protection hub 2-0:1.0: power on to power good time: 510ms hub 2-0:1.0: local power source is good hub 2-0:1.0: no over-current condition exists hub 1-0:1.0: debounce: port 4: total 100ms stable 100ms status 0x501 ehci_hcd 0000:00:0f.2: port 4 low speed --> companion ehci_hcd 0000:00:0f.2: GetStatus port 4 status 003002 POWER OWNER sig=se0 CSC ohci_hcd 0000:00:0f.0: created debug files ohci_hcd 0000:00:0f.0: OHCI controller state ohci_hcd 0000:00:0f.0: OHCI 1.0, with legacy support registers ohci_hcd 0000:00:0f.0: control 0x083 HCFS=operational CBSR=3 ohci_hcd 0000:00:0f.0: cmdstatus 0x00000 SOC=0 ohci_hcd 0000:00:0f.0: intrstatus 0x00000004 SF ohci_hcd 0000:00:0f.0: intrenable 0x8000001a MIE UE RD WDH ohci_hcd 0000:00:0f.0: hcca frame #0419 ohci_hcd 0000:00:0f.0: roothub.a ff000203 POTPGT=255 NPS NDP=3 ohci_hcd 0000:00:0f.0: roothub.b 00000000 PPCM=0000 DR=0000 ohci_hcd 0000:00:0f.0: roothub.status 00008000 DRWE ohci_hcd 0000:00:0f.0: roothub.portstatus [0] 0x00000100 PPS ohci_hcd 0000:00:0f.0: roothub.portstatus [1] 0x00000100 PPS ohci_hcd 0000:00:0f.0: roothub.portstatus [2] 0x00000100 PPS ohci_hcd 0000:00:0f.1: OHCI Host Controller ohci_hcd 0000:00:0f.1: reset, control = 0x0 ohci_hcd 0000:00:0f.1: irq 11, pci mem 2289e000 ohci_hcd 0000:00:0f.1: new USB bus registered, assigned bus number 3 ohci_hcd 0000:00:0f.0: suspend root hub usb usb3: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb3: default language 0x0409 usb usb3: Product: OHCI Host Controller usb usb3: Manufacturer: Linux 2.6.9-prep ohci_hcd usb usb3: SerialNumber: 0000:00:0f.1 usb usb3: hotplug ehci_hcd 0000:00:0f.2: GetStatus port 4 status 001403 POWER sig=k CSC CONNECT hub 1-0:1.0: port 4, status 0501, change 0001, 480 Mb/s usb usb3: adding 3-0:1.0 (config #1, interface 0) usb 3-0:1.0: hotplug hub 3-0:1.0: usb_probe_interface hub 3-0:1.0: usb_probe_interface - got id hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected hub 3-0:1.0: standalone hub hub 3-0:1.0: no power switching (usb 1.0) hub 3-0:1.0: global over-current protection hub 3-0:1.0: power on to power good time: 510ms hub 3-0:1.0: local power source is good hub 3-0:1.0: no over-current condition exists hub 1-0:1.0: debounce: port 4: total 100ms stable 100ms status 0x501 ehci_hcd 0000:00:0f.2: port 4 low speed --> companion ohci_hcd 0000:00:0f.1: created debug files ohci_hcd 0000:00:0f.1: OHCI controller state ohci_hcd 0000:00:0f.1: OHCI 1.0, with legacy support registers ohci_hcd 0000:00:0f.1: control 0x083 HCFS=operational CBSR=3 ohci_hcd 0000:00:0f.1: cmdstatus 0x00000 SOC=0 ohci_hcd 0000:00:0f.1: intrstatus 0x00000044 RHSC SF ohci_hcd 0000:00:0f.1: intrenable 0x8000001a MIE UE RD WDH ohci_hcd 0000:00:0f.1: hcca frame #041d ohci_hcd 0000:00:0f.1: roothub.a ff000202 POTPGT=255 NPS NDP=2 ohci_hcd 0000:00:0f.1: roothub.b 00000000 PPCM=0000 DR=0000 ohci_hcd 0000:00:0f.1: roothub.status 00008000 DRWE ohci_hcd 0000:00:0f.1: roothub.portstatus [0] 0x00000100 PPS ohci_hcd 0000:00:0f.1: roothub.portstatus [1] 0x00010301 CSC LSDA PPS CCS ehci_hcd 0000:00:0f.2: GetStatus port 4 status 003402 POWER OWNER sig=k CSC ohci_hcd 0000:00:0f.1: GetStatus roothub.portstatus [1] = 0x00010301 CSC LSDA PPS CCS hub 3-0:1.0: port 2, status 0301, change 0001, 1.5 Mb/s USB Universal Host Controller Interface driver v2.2 uhci_hcd 0000:00:07.2: UHCI Host Controller hub 3-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x301 uhci_hcd 0000:00:07.2: irq 10, io base 0000ef80 uhci_hcd 0000:00:07.2: new USB bus registered, assigned bus number 4 uhci_hcd 0000:00:07.2: detected 2 ports usb usb4: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb4: default language 0x0409 usb usb4: Product: UHCI Host Controller usb usb4: Manufacturer: Linux 2.6.9-prep uhci_hcd usb usb4: SerialNumber: 0000:00:07.2 usb usb4: hotplug usb usb4: adding 4-0:1.0 (config #1, interface 0) usb 4-0:1.0: hotplug hub 4-0:1.0: usb_probe_interface hub 4-0:1.0: usb_probe_interface - got id hub 4-0:1.0: USB hub found hub 4-0:1.0: 2 ports detected hub 4-0:1.0: standalone hub hub 4-0:1.0: no power switching (usb 1.0) hub 4-0:1.0: individual port over-current protection hub 4-0:1.0: power on to power good time: 2ms hub 4-0:1.0: local power source is good ohci_hcd 0000:00:0f.1: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS PES CCS usb 3-2: new low speed USB device using address 2 ohci_hcd 0000:00:0f.1: urb 036e3ee0 path 2 ep0out 5fc20000 cc 5 --> status -110 md: Autodetecting RAID arrays. md: autorun ... md: ... autorun DONE. ohci_hcd 0000:00:0f.1: urb 036e4f60 path 2 ep0out 5fc20000 cc 5 --> status -110 usb 3-2: device not accepting address 2, error -110 ohci_hcd 0000:00:0f.1: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS PES CCS usb 3-2: new low speed USB device using address 3 ohci_hcd 0000:00:0f.1: urb 036e4f60 path 2 ep0out 5fc20000 cc 5 --> status -110 ohci_hcd 0000:00:0f.1: urb 036e4f60 path 2 ep0out 5fc20000 cc 5 --> status -110 usb 3-2: device not accepting address 3, error -110 ohci_hcd 0000:00:0f.1: GetStatus roothub.portstatus [0] = 0x00010100 CSC PPS hub 3-0:1.0: port 1, status 0100, change 0001, 12 Mb/s hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x100 uhci_hcd 0000:00:07.2: suspend_hc EXT3 FS on sda4, internal journal device-mapper: 4.1.0-ioctl (2003-12-10) initialised: dm.com SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs Adding 1052248k swap on /dev/sdb2. Priority:-1 extents:1 SELinux: initialized (dev binfmt_misc, type binfmt_misc), uses genfs_contexts ide-scsi is deprecated for cd burning! Use ide-cd and give dev=/dev/hdX as device scsi2 : SCSI host adapter emulation for IDE ATAPI devices Vendor: NEC Model: PD-1 ODX654P Rev: A111 Type: CD-ROM ANSI SCSI revision: 02 sr1: scsi3-mmc drive: 6x/6x xa/form2 cdda tray Attached scsi CD-ROM sr1 at scsi2, channel 0, id 0, lun 0 Vendor: NEC Model: PD-1 ODX654P Rev: A111 Type: Optical Device ANSI SCSI revision: 02 SCSI device sdc: 1298496 512-byte hdwr sectors (665 MB) sdc: Write Protect is off sdc: Mode Sense: 76 42 00 00 SCSI device sdc: drive cache: write back sdc: unknown partition table Attached scsi removable disk sdc at scsi2, channel 0, id 0, lun 1 scsi3 : SCSI host adapter emulation for IDE ATAPI devices Vendor: OnStream Model: DI-30 Rev: 1.07 Type: Sequential-Access ANSI SCSI revision: 02 st: Found incompatible tape at scsi3, channel 0, id 0, lun 0 st: The suggested driver is osst. scsi4 : SCSI host adapter emulation for IDE ATAPI devices Vendor: CONNER Model: CTT8000-A Rev: 2.08 Type: Sequential-Access ANSI SCSI revision: 02 Attached scsi tape st0 at scsi4, channel 0, id 0, lun 0 st0: try direct i/o: yes (alignment 512 B), max page reachable by HBA 1048575 parport0: PC-style at 0x378 [PCSPP] st0: Error with sense data: Current st0: sense key Illegal Request Additional sense: Invalid command operation code ip_tables: (C) 2000-2002 Netfilter core team ip_tables: (C) 2000-2002 Netfilter core team e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex SELinux: initialized (dev rpc_pipefs, type rpc_pipefs), uses genfs_contexts parport0: PC-style at 0x378 [PCSPP] lp0: using parport0 (polling). lp0: console ready NET: Registered protocol family 10 Disabled Privacy Extensions on device 0232cf00(lo) IPv6 over IPv4 tunneling driver divert: not allocating divert_blk for non-ethernet device sit0 eth0: no IPv6 routers present EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended SELinux: initialized (dev sdc, type ext2), uses xattr uhci_hcd 0000:00:07.2: wakeup_hc uhci_hcd 0000:00:07.2: port 2 portsc 0083 hub 4-0:1.0: port 2, status 0101, change 0001, 12 Mb/s hub 4-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x101 usb 4-2: new full speed USB device using address 2 usb 4-2: new device strings: Mfr=1, Product=2, SerialNumber=5 usb 4-2: default language 0x0409 usb 4-2: Product: Edgeport/4 usb 4-2: Manufacturer: Inside Out Networks usb 4-2: SerialNumber: 02-01-000704 usb 4-2: hotplug usb 4-2: adding 4-2:1.0 (config #1, interface 0) usb 4-2:1.0: hotplug drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic usbserial_generic 4-2:1.0: usb_probe_interface usbserial_generic 4-2:1.0: usb_probe_interface - got id usbcore: registered new driver usbserial_generic usbcore: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0 drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 2 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 4 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 8 port adapter io_edgeport 4-2:1.0: usb_probe_interface io_edgeport 4-2:1.0: usb_probe_interface - got id io_edgeport 4-2:1.0: Edgeport 4 port adapter converter detected drivers/usb/serial/io_edgeport.c: get_string - USB String ID = 1 drivers/usb/serial/io_edgeport.c: get_string - USB String ID = 2 usb 4-2: Inside Out Network Edgeport/4 detected drivers/usb/serial/io_edgeport.c: getting manufacturer descriptor drivers/usb/serial/io_edgeport.c: rom_read - ff, 7c00, 960 drivers/usb/serial/io_edgeport.c: **Manufacturer Descriptor drivers/usb/serial/io_edgeport.c: RomSize: 8K drivers/usb/serial/io_edgeport.c: RamSize: 32K drivers/usb/serial/io_edgeport.c: CpuRev: 1 drivers/usb/serial/io_edgeport.c: BoardRev: 2 drivers/usb/serial/io_edgeport.c: NumPorts: 4 drivers/usb/serial/io_edgeport.c: DescDate: 4/9/1998 drivers/usb/serial/io_edgeport.c: SerialNumber: 02-01-000704 drivers/usb/serial/io_edgeport.c: AssemblyNumber: 350-1000-01-B Unable to handle kernel paging request at virtual address 00a0a9ab printing eip: 00a0a9ab *pde = 00005001 Oops: 0000 [#1] SMP Modules linked in: io_edgeport(U) usbserial(U) md5(U) ipv6(U) parport_pc(U) lp(U) parport(U) autofs4(U) sunrpc(U) ide_scsi(U) dm_mod(U) uhci_hcd(U) ohci_hcd(U) ehci_hcd(U) e100(U) mii(U) floppy(U) sr_mod(U) st(U) ext3(U) jbd(U) aic7xxx(U) sd_mod(U) scsi_mod(U) CPU: 1 EIP: 0060:[<00a0a9ab>] Not tainted VLI EFLAGS: 00010213 (2.6.9-prep) EIP is at 0xa0a9ab eax: 16f5fe40 ebx: 11e35980 ecx: ffffffff edx: 00000000 esi: 16f5fe40 edi: 11e35e0c ebp: 19f1f400 esp: 16f5fe40 ds: 007b es: 007b ss: 0068 Process modprobe (pid: 3586, threadinfo=16f5f000 task=11e12070) Stack: 2d303533 30303031 2d31302d 02120042 00000013 11e35980 11e35e0c 0212053b 00000013 11e35980 22a0ae39 22a0c900 022ec334 19f1f524 11e35980 22a1ac60 11ff2be0 00000000 1bec1ce0 00000002 21fd4a00 229ff594 11e54600 11ff2b60 Call Trace: [<02120042>] do_syslog+0x1be/0x422 [<0212053b>] printk+0xe/0x11 [<22a0ae39>] edge_startup+0xd3/0x243 [io_edgeport] [<229ff594>] usb_serial_probe+0x990/0xb8d [usbserial] [<022bce47>] __cond_resched+0x14/0x39 [<0219bb72>] inode_doinit_with_dentry+0x4b/0x595 [<02120436>] call_console_drivers+0xb6/0xd8 [<0212075c>] release_console_sem+0x75/0xa9 [<02120674>] vprintk+0x136/0x14a [<02242b77>] usb_probe_interface+0x8d/0x9f [<0220df60>] bus_match+0x27/0x45 [<0220e01a>] driver_attach+0x37/0x66 [<0220e3d8>] bus_add_driver+0x78/0x99 [<02242c11>] usb_register+0x38/0x77 [<2281203b>] edgeport_init+0x3b/0x78 [io_edgeport] [<021343ea>] sys_init_module+0x116/0x238 Code: Bad EIP value. As in neither case it printed all things it should print in get_manufacturing_desc and at least the code I've looked at in objdump looks ok, I guess the only possibility is buffer overflow. Can you try (with that debug=1 option still in modprobe.conf): --- linux-2.6.9/drivers/usb/serial/io_edgeport.c.jj 2004-10-18 23:53:11.000000000 +0200 +++ linux-2.6.9/drivers/usb/serial/io_edgeport.c 2004-11-26 16:12:40.579847432 +0100 @@ -2772,6 +2772,9 @@ static void get_manufacturing_desc (stru } else { char string[30]; dbg("**Manufacturer Descriptor"); + dbg(" Lengths: %d %d %d", + edge_serial->manuf_descriptor.SerNumLength, edge_serial->manuf_descriptor.AssemblyNumLength, + edge_serial->manuf_descriptor.OemAssyNumLength); dbg(" RomSize: %dK", edge_serial->manuf_descriptor.RomSize); dbg(" RamSize: %dK", edge_serial->manuf_descriptor.RamSize); dbg(" CpuRev: %d", edge_serial->manuf_descriptor.CpuRev); OK, then I get: usb 4-2: new full speed USB device using address 2 usb 4-2: new device strings: Mfr=1, Product=2, SerialNumber=5 usb 4-2: default language 0x0409 usb 4-2: Product: Edgeport/4 usb 4-2: Manufacturer: Inside Out Networks usb 4-2: SerialNumber: 02-01-000704 usb 4-2: hotplug usb 4-2: adding 4-2:1.0 (config #1, interface 0) usb 4-2:1.0: hotplug drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic usbserial_generic 4-2:1.0: usb_probe_interface usbserial_generic 4-2:1.0: usb_probe_interface - got id usbcore: registered new driver usbserial_generic usbcore: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0 drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 2 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 4 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 8 port adapter io_edgeport 4-2:1.0: usb_probe_interface io_edgeport 4-2:1.0: usb_probe_interface - got id io_edgeport 4-2:1.0: Edgeport 4 port adapter converter detected drivers/usb/serial/io_edgeport.c: get_string - USB String ID = 1 drivers/usb/serial/io_edgeport.c: get_string - USB String ID = 2 usb 4-2: Inside Out Network Edgeport/4 detected drivers/usb/serial/io_edgeport.c: getting manufacturer descriptor drivers/usb/serial/io_edgeport.c: rom_read - ff, 7c00, 960 drivers/usb/serial/io_edgeport.c: **Manufacturer Descriptor drivers/usb/serial/io_edgeport.c: Lengths: 26 28 0 drivers/usb/serial/io_edgeport.c: RomSize: 8K drivers/usb/serial/io_edgeport.c: RamSize: 32K drivers/usb/serial/io_edgeport.c: CpuRev: 1 drivers/usb/serial/io_edgeport.c: BoardRev: 2 drivers/usb/serial/io_edgeport.c: NumPorts: 4 drivers/usb/serial/io_edgeport.c: DescDate: 4/9/1998 drivers/usb/serial/io_edgeport.c: SerialNumber: 02-01-000704 drivers/usb/serial/io_edgeport.c: AssemblyNumber: 350-1000-01-B Unable to handle kernel paging request at virtual address 00a0a9e2 printing eip: 00a0a9e2 *pde = 00005001 Oops: 0000 [#1] SMP Modules linked in: io_edgeport(U) usbserial(U) md5(U) ipv6(U) parport_pc(U) lp(U) parport(U) autofs4(U) sunrpc(U) ide_scsi(U) dm_mod(U) uhci_hcd(U) ohci_hcd(U) ehci_hcd(U) e100(U) mii(U) floppy(U) sr_mod(U) st(U) ext3(U) jbd(U) aic7xxx(U) sd_mod(U) scsi_mod(U) CPU: 0 EIP: 0060:[<00a0a9e2>] Not tainted VLI EFLAGS: 00010213 (2.6.9-prep) EIP is at 0xa0a9e2 eax: 16c64e40 ebx: 1208f980 ecx: ffffffff edx: 00000000 esi: 16c64e40 edi: 1208fe0c ebp: 211d7400 esp: 16c64e40 ds: 007b es: 007b ss: 0068 Process modprobe (pid: 3409, threadinfo=16c64000 task=1201a900) Stack: 2d303533 30303031 2d31302d 02120042 00000013 1208f980 1208fe0c 0212053b 00000013 1208f980 22a0ae70 22a0c950 022ec334 211d7524 1208f980 22a1aca0 16c550a0 00000000 037288e0 00000002 21fd0c00 229ff594 128795a0 16c55aa0 Call Trace: [<02120042>] do_syslog+0x1be/0x422 [<0212053b>] printk+0xe/0x11 [<22a0ae70>] edge_startup+0xd3/0x243 [io_edgeport] [<229ff594>] usb_serial_probe+0x990/0xb8d [usbserial] [<022bce47>] __cond_resched+0x14/0x39 [<0219bb72>] inode_doinit_with_dentry+0x4b/0x595 [<02120436>] call_console_drivers+0xb6/0xd8 [<0212075c>] release_console_sem+0x75/0xa9 [<02120674>] vprintk+0x136/0x14a [<02242b77>] usb_probe_interface+0x8d/0x9f [<0220df60>] bus_match+0x27/0x45 [<0220e01a>] driver_attach+0x37/0x66 [<0220e3d8>] bus_add_driver+0x78/0x99 [<02242c11>] usb_register+0x38/0x77 [<2281203b>] edgeport_init+0x3b/0x78 [io_edgeport] [<021343ea>] sys_init_module+0x116/0x238 Code: Bad EIP value. Clearly buffer overflow. drivers/usb/serial/io_edgeport.c: Lengths: 26 28 0 The third invocation of unicode_to_ascii is then: char string[30]; unicode_to_ascii (stirng, something, 0/2-1); What's really sad is that debugging code even if not debugging makes the driver unusable and the quality of the debugging code. 1) sequences of dozens dbg () lines happen several times in the driver. dbg () is unconditionally if (debug) printk (something...); but as debug is a global variable and printk is not const or pure function, GCC needs to check it each time. I'd suggest } else if (debug) { char string[30]; etc. in that routine and in some others. 2) those 3 unicode_to_ascii calls are completely unneeded if not debugging, just a nice way how to crash the kernel 3) not passing buffer lengths around is something that should be really avoided 3) I'm moving the version of this bug from test3 to fc3 so it doesn't get lost. Created attachment 107493 [details]
Proposed patch to fix this.
Can you try the attached patch to see if this fixes the issue for you?
ok, done. Here's what I get: drivers/usb/serial/io_edgeport.c: **Manufacturer Descriptor drivers/usb/serial/io_edgeport.c: Lengths: 26 0 0 drivers/usb/serial/io_edgeport.c: RomSize: 8K drivers/usb/serial/io_edgeport.c: RamSize: 32K (In reply to comment #10) > As in neither case it printed all things it should print in get_manufacturing_desc and at least the code I've looked at in objdump > looks ok, I guess the only possibility is buffer overflow. > Can you try (with that debug=1 option still in modprobe.conf): > --- linux-2.6.9/drivers/usb/serial/io_edgeport.c.jj 2004-10-18 23:53:11.000000000 +0200 > +++ linux-2.6.9/drivers/usb/serial/io_edgeport.c 2004-11-26 16:12:40.579847432 +0100 > @@ -2772,6 +2772,9 @@ static void get_manufacturing_desc (stru > } else { > char string[30]; > dbg("**Manufacturer Descriptor"); > + dbg(" Lengths: %d %d %d", > + edge_serial->manuf_descriptor.SerNumLength, edge_serial->manuf_descriptor.AssemblyNumLength, > + edge_serial->manuf_descriptor.OemAssyNumLength); > dbg(" RomSize: %dK", edge_serial->manuf_descriptor.RomSize); > dbg(" RamSize: %dK", edge_serial->manuf_descriptor.RamSize); > dbg(" CpuRev: %d", edge_serial->manuf_descriptor.CpuRev); > (In reply to comment #16) > Created an attachment (id=107493) [edit] > Proposed patch to fix this. > > Can you try the attached patch to see if this fixes the issue for you? Houston, we have a winner. The serial port works now! Here's dmesg output: ehci_hcd 0000:00:13.2: GetStatus port 4 status 001803 POWER sig=j CSC CONNECT hub 1-0:1.0: port 4, status 0501, change 0001, 480 Mb/s hub 1-0:1.0: debounce: port 4: total 100ms stable 100ms status 0x501 hub 1-0:1.0: port 4 not reset yet, waiting 50ms ehci_hcd 0000:00:13.2: port 4 full speed --> companion ehci_hcd 0000:00:13.2: GetStatus port 4 status 003801 POWER OWNER sig=j CONNECT ohci_hcd 0000:00:13.1: wakeup ohci_hcd 0000:00:13.1: GetStatus roothub.portstatus [0] = 0x00010101 CSC PPS CCS hub 3-0:1.0: port 1, status 0101, change 0001, 12 Mb/s hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101 ohci_hcd 0000:00:13.1: CTRL: TypeReq=0x2301 val=0x2 idx=0x0 len=0 ==> -32 ohci_hcd 0000:00:13.1: GetStatus roothub.portstatus [0] = 0x00100103 PRSC PPS PES CCS usb 3-1: new full speed USB device using address 2 usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=5 usb 3-1: default language 0x0409 usb 3-1: Product: Edgeport/8 usb 3-1: Manufacturer: Inside Out Networks usb 3-1: SerialNumber: V22116435-0 usb 3-1: hotplug usb 3-1: adding 3-1:1.0 (config #1, interface 0) usb 3-1:1.0: hotplug drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic usbserial_generic 3-1:1.0: usb_probe_interface usbserial_generic 3-1:1.0: usb_probe_interface - got id usbcore: registered new driver usbserial_generic usbcore: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0 drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 2 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 4 port adapter drivers/usb/serial/usb-serial.c: USB Serial support registered for Edgeport 8 port adapter io_edgeport 3-1:1.0: usb_probe_interface io_edgeport 3-1:1.0: usb_probe_interface - got id io_edgeport 3-1:1.0: Edgeport 8 port adapter converter detected drivers/usb/serial/io_edgeport.c: get_string - USB String ID = 1 drivers/usb/serial/io_edgeport.c: get_string - USB String ID = 2 usb 3-1: Inside Out Network Edgeport/8 detected drivers/usb/serial/io_edgeport.c: getting manufacturer descriptor drivers/usb/serial/io_edgeport.c: rom_read - ff, 7c00, 960 drivers/usb/serial/io_edgeport.c: **Manufacturer Descriptor drivers/usb/serial/io_edgeport.c: Lengths: 26 0 0 drivers/usb/serial/io_edgeport.c: RomSize: 8K drivers/usb/serial/io_edgeport.c: RamSize: 32K drivers/usb/serial/io_edgeport.c: CpuRev: 1 drivers/usb/serial/io_edgeport.c: BoardRev: 1 drivers/usb/serial/io_edgeport.c: NumPorts: 8 drivers/usb/serial/io_edgeport.c: DescDate: 7/29/1999 drivers/usb/serial/io_edgeport.c: SerialNumber: V22116435-0 drivers/usb/serial/io_edgeport.c: AssemblyNumber: V22116435-0 drivers/usb/serial/io_edgeport.c: OemAssyNumber: V22116435-0 drivers/usb/serial/io_edgeport.c: UartType: 1 drivers/usb/serial/io_edgeport.c: IonPid: 15 drivers/usb/serial/io_edgeport.c: IonConfig: 0 drivers/usb/serial/io_edgeport.c: getting boot descriptor drivers/usb/serial/io_edgeport.c: rom_read - ff, 7fc0, 64 drivers/usb/serial/io_edgeport.c: **Boot Descriptor: drivers/usb/serial/io_edgeport.c: BootCodeLength: 7099 drivers/usb/serial/io_edgeport.c: MajorVersion: 1 drivers/usb/serial/io_edgeport.c: MinorVersion: 13 drivers/usb/serial/io_edgeport.c: BuildNumber: 4 drivers/usb/serial/io_edgeport.c: Capabilities: 0x1 drivers/usb/serial/io_edgeport.c: UConfig0: 241 drivers/usb/serial/io_edgeport.c: UConfig1: 127 drivers/usb/serial/io_edgeport.c: **Product Information: drivers/usb/serial/io_edgeport.c: ProductId f drivers/usb/serial/io_edgeport.c: NumPorts 8 drivers/usb/serial/io_edgeport.c: ProdInfoVer 0 drivers/usb/serial/io_edgeport.c: IsServer 0 drivers/usb/serial/io_edgeport.c: IsRS232 1 drivers/usb/serial/io_edgeport.c: IsRS422 0 drivers/usb/serial/io_edgeport.c: IsRS485 0 drivers/usb/serial/io_edgeport.c: RomSize 8 drivers/usb/serial/io_edgeport.c: RamSize 32 drivers/usb/serial/io_edgeport.c: CpuRev 1 drivers/usb/serial/io_edgeport.c: BoardRev 1 drivers/usb/serial/io_edgeport.c: BootMajorVersion 1.13.4 drivers/usb/serial/io_edgeport.c: FirmwareMajorVersion 1.16.4 drivers/usb/serial/io_edgeport.c: ManufactureDescDate 7/29/1999 drivers/usb/serial/io_edgeport.c: iDownloadFile 0xff drivers/usb/serial/io_edgeport.c: edge_startup - time 1 -194339 drivers/usb/serial/io_edgeport.c: downloading firmware version (930) 1.16.4 drivers/usb/serial/io_edgeport.c: sram_write - ff, 0, 6 drivers/usb/serial/io_edgeport.c: sram_write - ff, b, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 13, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 1b, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 23, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 2b, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 33, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 3b, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 43, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 4b, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 53, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 7b, 3 drivers/usb/serial/io_edgeport.c: sram_write - ff, 80, 7 drivers/usb/serial/io_edgeport.c: sram_write - ff, 3000, 2178 drivers/usb/serial/io_edgeport.c: sram_write - ff, 4000, 15381 drivers/usb/serial/io_edgeport.c: sram_write - ff, 7fc6, 4 drivers/usb/serial/io_edgeport.c: sram_write - ff, 7c15, 330 drivers/usb/serial/io_edgeport.c: sending exec_dl_code drivers/usb/serial/io_edgeport.c: edge_startup - time 2 -193449 drivers/usb/serial/io_edgeport.c: Current Boot Image version 1.13.4 drivers/usb/serial/io_edgeport.c: Boot Image -- already up to date drivers/usb/serial/io_edgeport.c: edge_startup - time 3 -193449 usb 3-1: Edgeport 8 port adapter converter now attached to ttyUSB0 usb 3-1: Edgeport 8 port adapter converter now attached to ttyUSB1 usb 3-1: Edgeport 8 port adapter converter now attached to ttyUSB2 usb 3-1: Edgeport 8 port adapter converter now attached to ttyUSB3 usb 3-1: Edgeport 8 port adapter converter now attached to ttyUSB4 usb 3-1: Edgeport 8 port adapter converter now attached to ttyUSB5 usb 3-1: Edgeport 8 port adapter converter now attached to ttyUSB6 usb 3-1: Edgeport 8 port adapter converter now attached to ttyUSB7 usbcore: registered new driver io_edgeport drivers/usb/serial/io_edgeport.c: Edgeport USB Serial Driver v2.3 Works for my EdgePort/4 too, so I think we can declare success (as soon as the patch makes it in the mainstream kernel tree). Thanks! ... lots of output omitted ... drivers/usb/serial/io_edgeport.c: sending exec_dl_code drivers/usb/serial/io_edgeport.c: edge_startup - time 2 -88192 drivers/usb/serial/io_edgeport.c: Current Boot Image version 1.12.8 drivers/usb/serial/io_edgeport.c: Boot Image -- already up to date drivers/usb/serial/io_edgeport.c: edge_startup - time 3 -88192 usb 4-2: Edgeport 4 port adapter converter now attached to ttyUSB0 usb 4-2: Edgeport 4 port adapter converter now attached to ttyUSB1 usb 4-2: Edgeport 4 port adapter converter now attached to ttyUSB2 usb 4-2: Edgeport 4 port adapter converter now attached to ttyUSB3 usbcore: registered new driver io_edgeport drivers/usb/serial/io_edgeport.c: Edgeport USB Serial Driver v2.3 This issue should also affect FC2. *** Bug 142546 has been marked as a duplicate of this bug. *** |