linux/drivers/usb/serial
John Ernberg 4152b387da USB: option: fix Cinterion AHxx enumeration
In certain kernel configurations where the cdc_ether and option drivers
are compiled as modules there can occur a race condition in enumeration.
This causes the option driver to enumerate the ethernet(wwan) interface
as usb-serial interfaces.

usb-devices output for the modem:
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1e2d ProdID=0055 Rev=00.00
S:  Manufacturer=Cinterion
S:  Product=AHx
C:  #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr=10mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
I:  If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether

Signed-off-by: John Ernberg <john.ernberg@actia.se>
Fixes: 1941138e1c ("USB: added support for Cinterion's products...")
Cc: stable <stable@vger.kernel.org>	# v3.9: 8ff10bdb14
Signed-off-by: Johan Hovold <johan@kernel.org>
2016-01-25 13:32:53 +01:00
..
aircable.c
ark3116.c
belkin_sa.c
belkin_sa.h
bus.c USB: serial: clean up bus probe error handling 2015-02-26 17:13:05 +01:00
ch341.c USB-serial updates for v4.1-rc1 2015-04-03 18:59:34 +02:00
console.c USB: console: add dummy __module_get 2015-02-26 17:06:39 +01:00
cp210x.c USB: cp210x: add ID for IAI USB to RS485 adaptor 2016-01-25 10:57:55 +01:00
cyberjack.c
cypress_m8.c
cypress_m8.h
digi_acceleport.c usb: serial: Remove unused tty->hw_stopped 2014-09-23 21:19:35 -07:00
empeg.c
ezusb_convert.pl
f81232.c USB: f81232: fix some minor style issues 2015-03-27 17:36:29 +01:00
ftdi_sio_ids.h USB: serial: ftdi_sio: add support for Yaesu SCU-18 cable 2016-01-25 11:52:58 +01:00
ftdi_sio.c USB: serial: ftdi_sio: add support for Yaesu SCU-18 cable 2016-01-25 11:52:58 +01:00
ftdi_sio.h
garmin_gps.c
generic.c USB: serial: fix infinite wait_until_sent timeout 2015-03-07 03:44:14 +01:00
io_16654.h
io_edgeport.c USB: io_edgeport: remove redundant conditions 2015-12-11 11:05:20 +01:00
io_edgeport.h
io_ionsp.h
io_tables.h
io_ti.c USB: io_ti: Remove extra blank lines separating functions 2015-10-09 12:23:50 +02:00
io_ti.h
io_usbvend.h USB: io_ti: fix firmware download on big-endian machines (part 2) 2014-05-27 15:12:57 -07:00
ipaq.c USB: ipaq.c: fix a timeout loop 2015-12-18 09:30:34 -08:00
ipw.c
ir-usb.c
iuu_phoenix.c
iuu_phoenix.h
Kconfig USB: serial: add Moxa UPORT 11x0 driver 2015-12-29 09:28:23 +01:00
keyspan_pda.c USB: keyspan_pda: add new device id 2015-03-19 18:04:01 +01:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c USB: keyspan: fix null-deref at probe 2015-01-02 15:12:28 +01:00
keyspan.h
kl5kusb105.c USB: kl5kusb105: Remove klsi_105_tiocmset function 2014-07-09 15:44:06 -07:00
kl5kusb105.h
kobil_sct.c USB-serial updates for v3.19-rc1 2014-11-26 10:41:46 -08:00
kobil_sct.h
Makefile USB: serial: add Moxa UPORT 11x0 driver 2015-12-29 09:28:23 +01:00
Makefile-keyspan_pda_fw
mct_u232.c
mct_u232.h
metro-usb.c
mos7720.c USB: mos7720: rename registers 2015-07-06 12:15:02 +02:00
mos7840.c USB: mos7840: remove redundant condition 2015-12-11 11:05:49 +01:00
mxu11x0.c USB: mxu11x0: fix memory leak on usb_serial private data 2016-01-25 12:47:47 +01:00
mxuport.c usb: serial: mxuport: Simplify return statement 2015-08-05 12:37:21 -07:00
navman.c
omninet.c
opticon.c USB: opticon: fix non-atomic allocation in write path 2014-11-03 09:07:30 +01:00
option.c USB: option: fix Cinterion AHxx enumeration 2016-01-25 13:32:53 +01:00
oti6858.c
oti6858.h
pl2303.c USB: pl2303: fix baud-rate divisor calculations 2015-07-30 18:11:07 +02:00
pl2303.h USB: pl2303: Remove support for Samsung I330 2015-04-29 12:34:24 +02:00
qcaux.c
qcserial.c USB: qcserial: Fix support for HP lt4112 LTE/HSPA+ Gobi 4G Modem 2015-11-16 18:29:07 +01:00
quatech2.c
safe_serial.c
sierra.c USB: sierra: add 1199:68AB device ID 2015-07-28 09:27:50 +02:00
spcp8x5.c
ssu100.c USB: ssu100: fix overrun-error reporting 2014-11-19 16:22:22 +01:00
symbolserial.c USB: symbolserial: Correct transferred data size 2015-08-18 10:06:22 -07:00
ti_usb_3410_5052.c USB: ti_usb_3410_5052: Add Honeywell HGI80 ID 2015-11-16 14:07:01 +01:00
ti_usb_3410_5052.h USB: ti_usb_3410_5052: Add Honeywell HGI80 ID 2015-11-16 14:07:01 +01:00
usb_debug.c
usb_wwan.c USB: usb_wwan/option: generalize option_send_setup for other drivers 2015-10-09 12:42:40 +02:00
usb-serial-simple.c USB: serial: Another Infineon flash loader USB ID 2015-11-23 10:32:59 +01:00
usb-serial.c USB: serial: Destroy serial_minors IDR on module exit 2015-07-09 10:41:23 +02:00
usb-wwan.h USB: usb_wwan/option: generalize option_send_setup for other drivers 2015-10-09 12:42:40 +02:00
visor.c USB: serial: visor: fix crash on detecting device without write_urbs 2016-01-25 11:40:45 +01:00
visor.h
whiteheat.c USB: whiteheat: fix potential null-deref at probe 2015-09-23 12:15:19 -07:00
whiteheat.h
wishbone-serial.c
xsens_mt.c usb: serial: xsens_mt: always bind to interface number 1 2014-09-04 11:18:26 +02:00