linux/drivers/usb/serial
Alan Stern 0a3c8549ea usb-serial: fix crash when sub-driver updates firmware
This patch (as1244) fixes a crash in usb-serial that occurs when a
sub-driver returns a positive value from its attach method, indicating
that new firmware was loaded and the device will disconnect and
reconnect.  The usb-serial core then skips the step of registering the
port devices; when the disconnect occurs, the attempt to unregister
the ports fails dramatically.

This problem shows up with Keyspan devices and it might affect others
as well.

When the attach method returns a positive value, the patch sets
num_ports to 0.  This tells usb_serial_disconnect() not to try
unregistering any of the ports; instead they are cleaned up by
destroy_serial().

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-05-28 13:54:43 -07:00
..
ChangeLog.history trivial: Fix misspelling of firmware 2009-03-30 15:21:59 +02:00
Kconfig trivial: fix typos/grammar errors in Kconfig texts 2009-03-30 15:22:01 +02:00
Makefile USB: serial: rename cp2101 driver to cp210x 2009-03-24 16:20:44 -07:00
Makefile-keyspan_pda_fw
aircable.c USB: usb-serial: fix the aircable_init failure path 2009-02-09 11:19:48 -08:00
ark3116.c usb_serial: API all change 2008-07-22 13:03:22 -07:00
belkin_sa.c USB: remove use of err() in drivers/usb/serial 2008-10-17 14:41:10 -07:00
belkin_sa.h belkin_sa: clean up code 2008-07-22 13:03:22 -07:00
bus.c usb-serial-bus: tidy coding style 2008-07-22 13:03:22 -07:00
ch341.c USB: usb-serial ch341: support for DTR/RTS/CTS 2009-04-17 10:50:26 -07:00
console.c Add device function for USB serial console 2009-01-02 10:19:38 -08:00
cp210x.c USB: Fix cp2101 USB serial device driver termios functions for console use 2009-03-24 16:20:45 -07:00
cyberjack.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
cypress_m8.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
cypress_m8.h cypress_m8: coding style 2008-07-22 13:03:23 -07:00
digi_acceleport.c USB: serial: fix up urb->status usage 2009-01-07 10:00:06 -08:00
empeg.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
ezusb.c USB: remove use of err() in drivers/usb/serial 2008-10-17 14:41:10 -07:00
ezusb_convert.pl
ftdi_sio.c Fix oops on close of hot-unplugged FTDI serial converter 2009-05-18 08:37:15 -07:00
ftdi_sio.h USB: ftdi_sio: add vendor/product id for the Marvell SheevaPlug 2009-05-08 19:34:56 -07:00
funsoft.c funsoft: Switch to linux/uaccess 2008-07-22 13:03:23 -07:00
garmin_gps.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
generic.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
hp4x.c USB: remove info() macro from usb/serial drivers 2008-10-17 14:41:09 -07:00
io_16654.h
io_edgeport.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
io_edgeport.h
io_ionsp.h
io_tables.h tty-usb-io_edgeport: Coding style 2008-07-22 13:03:27 -07:00
io_ti.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
io_ti.h
io_usbvend.h
ipaq.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
ipaq.h
ipw.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
ir-usb.c tty: trivial - fix up email addresses in tty related stuff 2008-11-11 09:30:10 -08:00
iuu_phoenix.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
iuu_phoenix.h
keyspan.c USB: drivers: use USB API functions rather than constants 2009-03-24 16:20:28 -07:00
keyspan.h usb_serial: API all change 2008-07-22 13:03:22 -07:00
keyspan_pda.c USB: remove use of err() in drivers/usb/serial 2008-10-17 14:41:10 -07:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
kl5kusb105.c tty: Drop the lock_kernel in the private ioctl hook 2009-01-02 10:19:42 -08:00
kl5kusb105.h
kobil_sct.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
kobil_sct.h
mct_u232.c tty: Drop the lock_kernel in the private ioctl hook 2009-01-02 10:19:42 -08:00
mct_u232.h
mos7720.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
mos7840.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
moto_modem.c USB device codes for Motorola phone. 2009-04-17 10:50:26 -07:00
navman.c tty: usb-serial krefs 2008-10-13 09:51:41 -07:00
omninet.c USB: remove use of err() in drivers/usb/serial 2008-10-17 14:41:10 -07:00
opticon.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
option.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
oti6858.c tty: usb-serial krefs 2008-10-13 09:51:41 -07:00
oti6858.h
pl2303.c tty: pl2303 needs identifiers for Siemens S81 as well as EF81 2009-04-06 14:36:41 -07:00
pl2303.h tty: pl2303 needs identifiers for Siemens S81 as well as EF81 2009-04-06 14:36:41 -07:00
qcserial.c USB: qcserial: Add extra device IDs 2009-04-17 10:50:24 -07:00
safe_serial.c USB: remove use of err() in drivers/usb/serial 2008-10-17 14:41:10 -07:00
siemens_mpi.c USB: add siemens_mpi usb-serial "stub" driver 2009-01-07 10:00:13 -08:00
sierra.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
spcp8x5.c USB: serial: fix up urb->status usage 2009-01-07 10:00:06 -08:00
symbolserial.c symbol: Remove various bits of left over junk 2009-04-06 14:36:42 -07:00
ti_usb_3410_5052.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
ti_usb_3410_5052.h USB: two more usb ids for ti_usb_3410_5052 2009-02-09 11:19:48 -08:00
usb-serial.c usb-serial: fix crash when sub-driver updates firmware 2009-05-28 13:54:43 -07:00
usb_debug.c USB: serial: usb_debug: Make static 2009-01-07 10:00:03 -08:00
visor.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
visor.h
whiteheat.c USB: remove use of err() in drivers/usb/serial 2008-10-17 14:41:10 -07:00
whiteheat.h whiteheat: coding style 2008-07-22 13:03:22 -07:00