linux/drivers/net/usb
Hemant Kumar 545bc464cb net: usb: Fix memory leak on Tx data path
[ Upstream commit 39707c2a3b ]

Driver anchors the tx urbs and defers the urb submission if
a transmit request comes when the interface is suspended.
Anchoring urb increments the urb reference count. These
deferred urbs are later accessed by calling usb_get_from_anchor()
for submission during interface resume. usb_get_from_anchor()
unanchors the urb but urb reference count remains same.
This causes the urb reference count to remain non-zero
after usb_free_urb() gets called and urb never gets freed.
Hence call usb_put_urb() after anchoring the urb to properly
balance the reference count for these deferred urbs. Also,
unanchor these deferred urbs during disconnect, to free them
up.

Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Acked-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-17 13:16:16 -08:00
..
asix.c asix: Support DLink DUB-E100 H/W Ver C1 2012-10-02 10:30:09 -07:00
catc.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
cdc_eem.c net: usb: cdc_eem: fix mtu 2012-04-01 23:32:35 -04:00
cdc_ether.c cdc_ether: add Novatel USB551L device IDs for FLAG_WWAN 2012-05-15 13:41:43 -04:00
cdc_ncm.c cdc_ncm: avoid discarding datagrams in rx path 2012-03-16 02:08:36 -07:00
cdc_subset.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
cdc-phonet.c cdc-phonet: fix skb truesize underestimation 2012-03-27 22:50:55 -04:00
cx82310_eth.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
dm9601.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
gl620a.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
hso.c tty and serial merge for 3.4-rc1 2012-03-20 11:24:39 -07:00
int51x1.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
ipheth.c ipheth: add support for iPad 2012-07-16 09:04:39 -07:00
kalmia.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
kaweth.c USB: kaweth.c: use GFP_ATOMIC under spin_lock 2012-08-09 08:31:51 -07:00
Kconfig net: qmi_wwan: fix build error due to cdc-wdm dependecy 2012-03-19 18:17:18 -04:00
lg-vl600.c Merge branch 'driver-core-next' into Linux 3.2 2012-01-06 11:42:52 -08:00
Makefile net: usb: qmi_wwan: New driver for Huawei QMI based WWAN devices 2012-03-09 13:09:17 -08:00
mcs7830.c mcs7830: unify return value of .ndo_set_mac_address if address is invalid 2012-02-23 17:03:20 -05:00
net1080.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
pegasus.c drivers/net: Remove alloc_etherdev error messages 2012-01-31 16:20:48 -05:00
pegasus.h
plusb.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
qmi_wwan.c net: qmi_wwan: new devices: UML290 and K5006-Z 2012-10-02 10:30:38 -07:00
rndis_host.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
rtl8150.c usb/rtl8150 : Remove duplicated definitions 2012-04-01 23:20:37 -04:00
sierra_net.c sierra_net: Endianess bug fix. 2012-10-13 05:38:42 +09:00
smsc75xx.c smsc75xx: enable mac to detect speed/duplex from phy 2012-04-30 21:52:42 -04:00
smsc75xx.h
smsc95xx.c smsc95xx: mark link down on startup and let PHY interrupt deal with carrier changes 2012-04-26 05:56:03 -04:00
smsc95xx.h
usbnet.c net: usb: Fix memory leak on Tx data path 2012-11-17 13:16:16 -08:00
zaurus.c USB: Add Motorola Rokr E6 Id to the USBNet driver "zaurus" 2012-03-27 22:39:46 -04:00