usb_serial: Fix remaining ref count/lock bugs
authorAlan Cox <alan@lxorguk.ukuu.org.uk>
Mon, 27 Jul 2009 23:34:58 +0000 (00:34 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 28 Jul 2009 00:26:23 +0000 (17:26 -0700)
commitc56d300086140c93dc3390e5300fd17df802ec0e
treecc80d5acf9abe433573efe5d610b0f19df04f5d8
parentfc013a58859b7cf85e53a05804a74952fe0a4117
usb_serial: Fix remaining ref count/lock bugs

This fixes
- locking bug that was hidden by ecc2e05e739c30870c8e4f252b63a0c4041f2724
- Regression #13821
- Spurious warning when closing and blocking for data write out

With these changes my PL2303 always ends up as ttyUSB0 when it should and
the module refcounts stay correct.

I'll do a more wholesale split & tidy of _open in the next release or two
as we get a standard tty_port_open and port->ops->init port->ops->shutdown
call backs.

Copy sent to Alan Stern and Carlos Mafra just to confirm it fixes all the
reports but it passes local testing with the same hardware as Alan Stern.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/usb/serial/usb-serial.c