linux/drivers/net
Kristian Evensen d5c83d0d1d cdc_ether: Fix handling connection notification
Commit bfe9b9d2df ("cdc_ether: Improve ZTE MF823/831/910 handling")
introduced a work-around in usbnet_cdc_status() for devices that exported
cdc carrier on twice on connect. Before the commit, this behavior caused
the link state to be incorrect. It was assumed that all CDC Ethernet
devices would either export this behavior, or send one off and then one on
notification (which seems to be the default behavior).

Unfortunately, it turns out multiple devices sends a connection
notification multiple times per second (via an interrupt), even when
connection state does not change. This has been observed with several
different USB LAN dongles (at least), for example 13b1:0041 (Linksys).
After bfe9b9d2df, the link state has been set as down and then up for
each notification. This has caused a flood of Netlink NEWLINK messages and
syslog to be flooded with messages similar to:

cdc_ether 2-1:2.0 eth1: kevent 12 may have been dropped

This commit fixes the behavior by reverting usbnet_cdc_status() to how it
was before bfe9b9d2df. The work-around has been moved to a separate
status-function which is only called when a known, affect device is
detected.

v1->v2:

* Do not open-code netif_carrier_ok() (thanks Henning Schild).
* Call netif_carrier_off() instead of usb_link_change(). This prevents
calling schedule_work() twice without giving the work queue a chance to be
processed (thanks Bjørn Mork).

Fixes: bfe9b9d2df ("cdc_ether: Improve ZTE MF823/831/910 handling")
Reported-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-12-02 13:40:09 -05:00
..
appletalk
arcnet
bonding Merge branch 'work.uaccess2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-10-11 23:38:39 -07:00
caif
can can: sja1000: plx_pci: Add support for Moxa CAN devices 2016-10-31 20:48:19 +01:00
cris
dsa net: dsa: bcm_sf2: Ensure we re-negotiate EEE during after link change 2016-11-24 15:53:50 -05:00
ethernet net: ethernet: altera: TSE: do not use tx queue lock in tx completion handler 2016-12-02 12:10:25 -05:00
fddi
fjes
hamradio 6pack: fix buffer length mishandling 2016-09-20 22:51:30 -04:00
hippi
hyperv Revert "hv_netvsc: report vmbus name in ethtool" 2016-10-29 15:03:14 -04:00
ieee802154 net: ieee802154: drop duplicate header delay.h 2016-11-25 20:33:10 -05:00
ipvlan driver: ipvlan: Fix one possible memleak in ipvlan_link_new 2016-11-27 19:58:04 -05:00
irda irda: fix overly long udelay() 2016-11-27 19:59:50 -05:00
phy net: phy: realtek: fix enabling of the TX-delay for RTL8211F 2016-11-28 12:06:54 -05:00
plip
ppp
slip
team
usb cdc_ether: Fix handling connection notification 2016-12-02 13:40:09 -05:00
vmxnet3 vmxnet3: avoid assumption about invalid dma_pa in vmxnet3_set_mc() 2016-10-15 17:47:32 -04:00
wan net: wan: slic_ds26522: Allow driver to built if COMPILE_TEST is enabled 2016-10-14 10:11:49 -04:00
wimax
wireless wireless-drivers fixes for 4.9 2016-11-30 14:33:44 -05:00
xen-netback xen-netback: fix type mismatch warning 2016-10-13 11:02:25 -04:00
dummy.c
eql.c
geneve.c geneve: avoid using stale geneve socket. 2016-10-29 20:56:31 -04:00
gtp.c
ifb.c
Kconfig ipvlan: Fix dependency issue 2016-09-20 22:55:23 -04:00
LICENSE.SRC
loopback.c
macsec.c macsec: Fix header length if SCI is added if explicitly disabled 2016-10-27 16:21:00 -04:00
macvlan.c driver: macvlan: Check if need rollback multicast setting in macvlan_open 2016-11-23 20:18:36 -05:00
macvtap.c macvtap: handle ubuf refcount correctly when meet errors 2016-11-30 15:06:02 -05:00
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c tun: handle ubuf refcount correctly when meet errors 2016-11-30 15:06:01 -05:00
veth.c
virtio_net.c virtio-net: add a missing synchronize_net() 2016-11-16 15:09:29 -05:00
vrf.c net: Require exact match for TCP socket lookups if dif is l3mdev 2016-10-17 10:17:05 -04:00
vxlan.c vxlan: fix a potential issue when create a new vxlan fdb entry. 2016-11-30 12:02:49 -05:00
xen-netfront.c xen-netfront: cast grant table reference first to type int 2016-11-02 15:33:36 -04:00