Bug 59317

Summary: Kernel crash when plugging/unplugging Tripp-Lite USB-Serial Adapter
Product: [Retired] Red Hat Linux Reporter: Scott Gifford <sgifford>
Component: kernelAssignee: Pete Zaitcev <zaitcev>
Status: CLOSED CURRENTRELEASE QA Contact: Brian Brock <bbrock>
Severity: high Docs Contact:
Priority: medium    
Version: 7.2   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
URL: http://www.suspectclass.com/~sgifford/kernel-crash/usb-serial/
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-06-08 01:08:26 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:
Attachments:
Description Flags
Contents of /var/log/messages during crash
none
ksymoops of crash none

Description Scott Gifford 2002-02-05 07:42:29 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.78 [en] (X11; U; Linux 2.4.9-13 i686)

Description of problem:
  I'm having trouble using my Tripp-Lite USB-Serial adapter with your
pl2303 driver.  It is detected properly and I am able to communicate
with it briefly, but the data is gibberish and eventually it stops
working.  After that, if I unplug the USB cable and plug it back in,
the kernel crashes (!).


Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:

	1. Boot system
2. Plug in USB-Serial Adapter
3. Run program which uses /dev/usb/ttyUSB0
4. Run program again
5. Unplug USB-Serial Adapter
6. If kernel is still up, plug it back in
 

Actual Results:  Kernel crashes.

Expected Results:  Kernel not crashing, or better yet, device working properly.

Additional info:

  This adapter is a Tripp-Lite U209-000-R:

    http://www.1tripplite.com/products/usb.htm

It is detected as pl2303, and looks identical to the one made by ATEN
which has been reported to work with this driver:

    http://www.aten-usa.com/products/product.php?ITEM=UC232A
    http://www.linuxfocus.org/English/November2001/article223.shtml

  I'm using the RedHat 2.4.9-13 kernel.  Detailed traces and logs are
available at:

    http://www.suspectclass.com/~sgifford/kernel-crash/usb-serial/

  When I plug the cable in, it seems to be detected normally:

    Feb  4 20:18:53 localhost kernel: hub.c: USB new device connect on bus1/1,
assigned device number 2
    Feb  4 20:18:53 localhost kernel: usb.c: USB device 2 (vend/prod
0x67b/0x2303) is not claimed by any active driver.
    Feb  4 20:18:53 localhost kernel: usbserial.c: USB Serial support registered
for Generic
    Feb  4 20:18:53 localhost kernel: usb.c: registered new driver serial
    Feb  4 20:18:53 localhost kernel: usbserial.c: USB Serial Driver core v1.3
    Feb  4 20:18:53 localhost kernel: usbserial.c: USB Serial support registered
for PL-2303
    Feb  4 20:18:53 localhost kernel: usbserial.c: PL-2303 converter detected
    Feb  4 20:18:53 localhost kernel: usbserial.c: PL-2303 converter now
attached to ttyUSB0 (or usb/tts/0 for devfs)
    Feb  4 20:18:53 localhost kernel: pl2303.c: Prolific PL2303 USB to serial
adaptor driver v0.7

  Then I run my program, which simply opens /dev/usb/ttyUSB0, runs
"stty ispeed 19200 ospeed 19200 raw" on it, then sends a modem init
string and waits for an OK.  It acts like it's working but getting
gibberish the first time I run it (which could be a bug in my
program), but the next time I run it I get:

        Feb  4 20:19:47 localhost kernel: usb-uhci.c: ENXIO c0418280, flags 0,
urb c6a2c8a0, burb c6a2c8a0
    Feb  4 20:19:47 localhost kernel: pl2303.c: pl2303_open - failed submitting
read urb, error -6
    Feb  4 20:19:50 localhost kernel: usb-uhci.c: interrupt, status 3, frame#
1699
    Feb  4 20:19:50 localhost kernel: usb-uhci.c: interrupt, status 3, frame#
1701
    Feb  4 20:19:50 localhost kernel: usb-uhci.c: interrupt, status 3, frame#
1703
    Feb  4 20:19:50 localhost kernel: usb-uhci.c: interrupt, status 3, frame#
1705

in the log, and my application gets an EPROTO error when it tries to
open the serial port.

  After that, I unplug the USB cable and plug it back in, and then I
get an Oops and my system crashes:

    http://www.suspectclass.com/~sgifford/kernel-crash/usb-serial/ksymoops.txt

Comment 1 Scott Gifford 2002-02-05 07:44:16 UTC
Created attachment 44497 [details]
Contents of /var/log/messages during crash

Comment 2 Scott Gifford 2002-02-05 07:45:15 UTC
Created attachment 44498 [details]
ksymoops of crash

Comment 3 Arjan van de Ven 2002-02-05 08:10:02 UTC
looks like something kept trying to use the module while it was unloaded...

Comment 4 Pete Zaitcev 2002-03-27 20:50:47 UTC
Would you mind installing 2.4.9-31 and tell me how that goes?


Comment 5 Pete Zaitcev 2002-04-03 04:38:25 UTC
See also Bug 61820.


Comment 6 Scott Gifford 2002-04-03 05:41:08 UTC
My laptop is out of commission...I'll try it next week, when I get a new battery
and power cord.

Comment 7 Pete Zaitcev 2002-04-08 23:16:23 UTC
We issued a rawhide kernel (2.4.18-0.13) which probably
has the fix for it. Make sure you try that instead of 2.4.9-31
as I suggested earlier.

Comment 8 Scott Gifford 2002-04-23 05:00:45 UTC
2.4.18-0.13 is a huge step up.  The kernel no longer crashes, and I can use the
serial port!

Unfortunately, after quite a few opens and closes of the serial port (about 100)
it seems to stop working, and has to be unplugged and plugged back in.

Still, I'm much happier with what I've got now.  If you'd like more info on
what's going on when it stops working, let me know and I'll gather it. 
Otherwise, go ahead and close this out.

Thanks!!