linux/drivers/net/usb
Jiri Slaby 0ee1f47349 r8152: napi hangup fix after disconnect
When unplugging an r8152 adapter while the interface is UP, the NIC
becomes unusable.  usb->disconnect (aka rtl8152_disconnect) deletes
napi. Then, rtl8152_disconnect calls unregister_netdev and that invokes
netdev->ndo_stop (aka rtl8152_close). rtl8152_close tries to
napi_disable, but the napi is already deleted by disconnect above. So
the first while loop in napi_disable never finishes. This results in
complete deadlock of the network layer as there is rtnl_mutex held by
unregister_netdev.

So avoid the call to napi_disable in rtl8152_close when the device is
already gone.

The other calls to usb_kill_urb, cancel_delayed_work_sync,
netif_stop_queue etc. seem to be fine. The urb and netdev is not
destroyed yet.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: linux-usb@vger.kernel.org
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-06-26 18:00:44 +09:00
..
asix_common.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
asix_devices.c net: usb: asix: fill null-ptr-deref in asix_suspend 2017-11-09 09:22:13 +09:00
asix.h asix: Fix small memory leak in ax88772_unbind() 2017-08-07 10:10:19 -07:00
ax88172a.c
ax88179_178a.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
catc.c net: usb: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
cdc_eem.c net: cdc_eem: clean up bind error path 2018-03-07 15:39:27 -05:00
cdc_ether.c cdc_ether: flag the Cinterion AHS8 modem by gemalto as WWAN 2018-04-11 10:36:38 -04:00
cdc_mbim.c net: usb: cdc_mbim: add flag FLAG_SEND_ZLP 2018-06-01 14:01:42 -04:00
cdc_ncm.c net/usb/drivers: Remove useless hrtimer_active check 2018-06-20 09:05:44 +09:00
cdc_subset.c
cdc-phonet.c net: usb: cdc-phonet: constify usb_device_id 2017-08-08 17:47:58 -07:00
ch9200.c
cx82310_eth.c
dm9601.c
gl620a.c networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
hso.c drivers/net: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
huawei_cdc_ncm.c cdc_ncm: Set NTB format again after altsetting switch for Huawei devices 2017-07-14 08:15:05 -07:00
int51x1.c net: introduce __skb_put_[zero, data, u8] 2017-06-20 13:30:14 -04:00
ipheth.c usbnet: ipheth: fix potential null pointer dereference in ipheth_carrier_set 2017-11-19 12:23:57 +09:00
kalmia.c net: kalmia: clean up bind error path 2018-03-07 15:39:27 -05:00
kaweth.c net: usb: kaweth: constify usb_device_id 2017-08-08 17:47:59 -07:00
Kconfig lan78xx: Lan7801 Support for Fixed PHY 2018-04-29 21:41:01 -04:00
lan78xx.c drivers: net: Remove device_node checks with of_mdiobus_register() 2018-05-16 14:20:36 -04:00
lan78xx.h
lg-vl600.c net: drivers/net: Remove unnecessary skb_copy_expand OOM messages 2018-03-15 14:28:03 -04:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mcs7830.c
net1080.c networking: add and use skb_put_u8() 2017-06-16 11:48:40 -04:00
pegasus.c
pegasus.h
plusb.c
qmi_wwan.c qmi_wwan: add support for the Dell Wireless 5821e module 2018-06-24 11:44:28 +09:00
r8152.c r8152: napi hangup fix after disconnect 2018-06-26 18:00:44 +09:00
rndis_host.c rndis_host: support Novatel Verizon USB730L 2017-10-03 14:30:46 -07:00
rtl8150.c net: usb: rtl8150: constify usb_device_id 2017-08-08 17:47:59 -07:00
sierra_net.c net: usb: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
smsc75xx.c smsc75xx: fix smsc75xx_set_features() 2018-02-22 14:05:15 -05:00
smsc75xx.h
smsc95xx.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
smsc95xx.h
sr9700.c
sr9700.h
sr9800.c
sr9800.h
usbnet.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
zaurus.c networking: add and use skb_put_u8() 2017-06-16 11:48:40 -04:00