From Bugzilla Helper:
User-Agent: Mozilla/4.78 [en] (X11; U; Linux 2.4.18 i686)
Description of problem:
Before calling 'generic_close', the function 'serial_close' does a call to
'down'. Within 'generic_close' another call to 'down' is done which causes the
driver to hang.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Enable USB Serial Converter support and the USB Generic Serial Driver in the
2. Load the usbserial driver with vendor and product ids for a "generic" USB
3. Attach the "generic" USB device to the system.
4. Write a program that does an open and close of "/dev/ttyUSB0".
Actual Results: Program will not return from call to 'close'.
Expected Results: Program will return from call to 'close' and finish
oops, I caused this bug with my previous patch for the visor oops.
If the calls to down(&port->sem) and up(&port->sem) are removed from
drivers/usb/usbserial.c::generic_close() this problem should be fixed.
Let me know if anyone needs me to make a patch for this problem.
Again, very sorry about this.
See also Bug 61820.
I fixed it in HEAD 2.4.18-5.47 (Raw Hide), but not in Hampton (7.3).
The temporary 2.4 fix is in current -ac.