Most recent kernel where this bug did *NOT* occur: Confirmed in 2.6.18->2.6.20 Distribution: Gentoo, but with vanilla kernel Hardware Environment: Dell 9400 Laptop, Novatel Merlin XU870 HSDPA/3G Software Environment: Bare build with 2.6.20 kernel. Problem Description: System hangs when writing to USB serial port mapped to the XU870. There appear to be six serial ports mapped to this device. crw-rw---- 1 root tty 188, 0 Jan 21 14:54 /dev/ttyUSB0 crw-rw---- 1 root tty 188, 0 Jan 21 14:54 /dev/ttyUSB1 crw-rw---- 1 root tty 188, 0 Jan 21 14:54 /dev/ttyUSB2 crw-rw---- 1 root tty 188, 0 Jan 21 14:54 /dev/ttyUSB3 crw-rw---- 1 root tty 188, 0 Jan 21 14:54 /dev/ttyUSB4 crw-rw---- 1 root tty 188, 0 Jan 21 14:54 /dev/ttyUSB5 lsusb: Bus 001 Device 003: ID 1410:1430 (NB: No device description is output in lsusb for this device) usbcore: registered new interface driver usbserial_generic drivers/usb/serial/usb-serial.c: USB Serial Driver core drivers/usb/serial/usb-serial.c: USB Serial support registered for airprime airprime 1-1.3:1.0: airprime converter detected usb 1-1.3: airprime converter now attached to ttyUSB0 usb 1-1.3: airprime converter now attached to ttyUSB1 usb 1-1.3: airprime converter now attached to ttyUSB2 airprime 1-1.3:1.1: airprime converter detected usb 1-1.3: airprime converter now attached to ttyUSB3 usb 1-1.3: airprime converter now attached to ttyUSB4 usb 1-1.3: airprime converter now attached to ttyUSB5 usbcore: registered new interface driver airprime Steps to reproduce: modprobe airprime cat "at+cgdcont=1,\"IP\",\"internet\",\"\",0,0" > /dev/ttyUSB[0..5] <system hang>
"System hang", by the way, means the system completely locks up, and the caps and num-lock lights start flashing.
Created attachment 10142 [details] 9400 Kernel config
More information.... If I do this: cat /dev/ttyUSB0 ... then in another term do this: cat "at....." /dev/ttyUSB0 (as before) Then it does not crash: I get "OK" as expected. However.. If I omit reading the USB tty, ie I do not do a cat /dev/ttyUSB0 before the write, then I get a kernel panic. Unfortunately I do not have a serial device to capture the panic, however, this is the part that I can see: panic+0x4d/0xe8 die+0x1e5/0x219 do_page_fault+0x450/0x525 do_page_fault+0x0/0x525 error_code+0x7c/0x84 _spin_lock_irqsave+0x3/0x27 airprime_write_bulk_callbackk+0x7d/0x96 [airprime] usb_hcd_giveback_urb+0x28/0x57 ehci_urb_done+0x68/0x72 qh_completions+0x73/0x2ee ehci_work+0x98/0x53b acpi_ut_status_exit+0x67/0x75 ehci_irq+0x113/0x124 acpi_ut_status_exit+0x67/0x75 usb_hcd_irq+0x21/0x4e handle_IRQ_event+0x1a/0x3f handle_fasteoi_irq+0x6d/0xa0 do_IRQ+0x82/0x9c common_interrupt+0x23/0x28 acpi_processor_idle+0x1ce/0x363 cpu_idle+0x5e/0000x73 start_kernel+0x388/0x390 unknown_bootoption+0x0/0x202
I have just noticed another (perhaps related?) problem with this device. If I do this: `cat /dev/ttyUSB0` ...as before (to avoid the kernel panic), then: `cat "at+cgdcont=1,\"IP\",\"internet\",\"\",0,0" > /dev/ttyUSB0` ...then sometimes I get this sort of thing on the echo: "at+cgdcgdcgdcgdcgdcgdcgdcgd" or this "at+cgdcontcgdcontcgdcontcgdcontcgdcontcgdcont" (ie repeated patterns). I'm not convinced this would be a timing issue as the characters echoed back are the actual correct characters, save for being repeated incorrectly. If it were timing, I'd be expecting some weird characters coming back, but I see only sensible characters repeatedly. Now if I repeat the above line a few times, sometimes I get a perfect echo, followed by an "OK" response from the modem, other times I get the above repetition followed by an "ERROR" from the modem.
Can you please try 2.6.22-rc4? - there were multiple fixes in USB/HCD area that went into it. Thanks.
Elliot - ping.. Also, can you please clarify if the device used to work in 2.6.18? Thanks.
Oops, sorry, this one slipped through my mailbox. I have been testing for two weeks against 2.6.20-16 (ubuntu build, not vanilla), and the device stable and fully functional. I will try against vanilla 2.6.22+ (gentoo most likely) as soon as I have a minute free (probably later this week as I am current tied to a severity 1 fault and am out of the country for a couple of days). Hope that's OK. As for 2.6.18, I don't think so. From memory I think I had to manually hack the XU870 into the airprime.c to be supported. The module loaded, but I don't recall having much luck with it even then. Thanks, Elliot.
Ok, I'm marking this as fixed.