0a3c8549ea
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> |
||
---|---|---|
.. | ||
aircable.c | ||
ark3116.c | ||
belkin_sa.c | ||
belkin_sa.h | ||
bus.c | ||
ch341.c | ||
ChangeLog.history | ||
console.c | ||
cp210x.c | ||
cyberjack.c | ||
cypress_m8.c | ||
cypress_m8.h | ||
digi_acceleport.c | ||
empeg.c | ||
ezusb.c | ||
ezusb_convert.pl | ||
ftdi_sio.c | ||
ftdi_sio.h | ||
funsoft.c | ||
garmin_gps.c | ||
generic.c | ||
hp4x.c | ||
io_16654.h | ||
io_edgeport.c | ||
io_edgeport.h | ||
io_ionsp.h | ||
io_tables.h | ||
io_ti.c | ||
io_ti.h | ||
io_usbvend.h | ||
ipaq.c | ||
ipaq.h | ||
ipw.c | ||
ir-usb.c | ||
iuu_phoenix.c | ||
iuu_phoenix.h | ||
Kconfig | ||
keyspan.c | ||
keyspan.h | ||
keyspan_pda.c | ||
keyspan_usa26msg.h | ||
keyspan_usa28msg.h | ||
keyspan_usa49msg.h | ||
keyspan_usa67msg.h | ||
keyspan_usa90msg.h | ||
kl5kusb105.c | ||
kl5kusb105.h | ||
kobil_sct.c | ||
kobil_sct.h | ||
Makefile | ||
Makefile-keyspan_pda_fw | ||
mct_u232.c | ||
mct_u232.h | ||
mos7720.c | ||
mos7840.c | ||
moto_modem.c | ||
navman.c | ||
omninet.c | ||
opticon.c | ||
option.c | ||
oti6858.c | ||
oti6858.h | ||
pl2303.c | ||
pl2303.h | ||
qcserial.c | ||
safe_serial.c | ||
siemens_mpi.c | ||
sierra.c | ||
spcp8x5.c | ||
symbolserial.c | ||
ti_usb_3410_5052.c | ||
ti_usb_3410_5052.h | ||
usb-serial.c | ||
usb_debug.c | ||
visor.c | ||
visor.h | ||
whiteheat.c | ||
whiteheat.h |