linux/drivers/net
Bjørn Mork f350ca0370 net: cdc_ncm: fix probing of devices with multiple control interface altsettings
commit bd329e1 ("net: cdc_ncm: do not bind to NCM compatible MBIM devices")
added a test for a CDC MBIM altsetting, implementing the cdc_ncm part of
MBIM backward compatibility support.  This intentionally made the driver
behave differently for CDC NCM devices with 2 alternate settings for the
Communication interface, depending on whether or not CONFIG_USB_NET_CDC_MBIM
was enabled.  This is correct iff alternate setting #1 really *is* a MBIM
setting.  If not, then NCM probing will use a different altsetting than before,
possibly causing probing failures depending on CONFIG_USB_NET_CDC_MBIM.

Fix by setting the altsetting back to default after the test, restoring the
previous behaviour for non MBIM devices.

This bug causes probing of Huawei E3276 devices to fail when the MBIM driver
is enabled, because these devices have a second alternate setting with no CDC
functional descriptors.

Cc: Greg Suarez <gsuarez@smithmicro.com>
Cc: Alexey Orishko <alexey.orishko@stericsson.com>
Reported-and-tested-by: Jonathan A. <yo.natan@hotmail.com>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-02-14 13:14:45 -05:00
..
appletalk
arcnet ARCNET: remove __dev* attributes 2012-12-03 11:16:10 -08:00
bonding bonding: unset primary slave via sysfs 2013-01-29 15:43:35 -05:00
caif
can can: c_can: Set reserved bit in IFx_MASK2 to 1 on write 2013-02-01 10:20:22 +01:00
cris
dsa dsa: Hide core config options; make drivers select what they need 2012-11-26 17:10:44 -05:00
ethernet net/macb: fix race with RX interrupt while doing NAPI 2013-02-13 13:34:10 -05:00
fddi drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
hamradio
hippi drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
hyperv net/hyperv: fix wrong length of mac address 2013-01-19 11:01:23 -05:00
ieee802154 ieee802154: remove __dev* attributes 2012-12-03 11:16:56 -08:00
irda drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
phy net: phy: icplus: fix broken INTR pin settings 2013-01-28 00:08:22 -05:00
plip
ppp ppp: make ppp_get_stats64 static 2012-11-01 12:38:31 -04:00
slip
team team: fix hw_features setup 2012-11-28 11:39:22 -05:00
usb net: cdc_ncm: fix probing of devices with multiple control interface altsettings 2013-02-14 13:14:45 -05:00
vmxnet3 vmxnet3: set carrier state properly on probe 2013-01-29 16:29:22 -05:00
wan Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-12-12 18:07:07 -08:00
wimax i2400m: add Intel 6150 device IDs 2012-12-15 17:14:38 -08:00
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2013-02-12 10:41:46 -05:00
xen-netback netback: correct netbk_tx_err to handle wrap around. 2013-02-07 23:29:29 -05:00
dummy.c
eql.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c net: loopback: fix a dst refcounting issue 2013-01-27 01:30:35 -05:00
macvlan.c macvlan: fix macvlan_get_size() 2013-01-17 16:40:35 -05:00
macvtap.c
Makefile
mdio.c
mii.c
netconsole.c netconsole: add oops_only module option 2012-11-08 22:06:36 -05:00
rionet.c
sb1000.c
Space.c
sungem_phy.c Fix misspellings of "whether" in comments. 2012-11-19 14:31:35 +01:00
tun.c tuntap: allow polling/writing/reading when detached 2013-01-29 15:43:04 -05:00
veth.c rtnelink: remove unused parameter from rtnl_create_link(). 2012-11-30 12:24:40 -05:00
virtio_net.c virtio-net: reset virtqueue affinity when doing cpu hotplug 2013-01-27 01:22:51 -05:00
vxlan.c vxlan: allow live mac address change 2013-01-03 01:58:13 -08:00
xen-netfront.c xen/netfront: improve truesize tracking 2013-01-07 19:51:19 -08:00