linux/drivers/net
Ahmed S. Darwish b442723fce can: kvaser_usb: Don't free packets when tight on URBs
Flooding the Kvaser CAN to USB dongle with multiple reads and
writes in high frequency caused seemingly-random panics in the
kernel.

On further inspection, it seems the driver erroneously freed the
to-be-transmitted packet upon getting tight on URBs and returning
NETDEV_TX_BUSY, leading to invalid memory writes and double frees
at a later point in time.

Note:

Finding no more URBs/transmit-contexts and returning NETDEV_TX_BUSY
is a driver bug in and out of itself: it means that our start/stop
queue flow control is broken.

This patch only fixes the (buggy) error handling code; the root
cause shall be fixed in a later commit.

Acked-by: Olivier Sobrie <olivier@sobrie.be>
Signed-off-by: Ahmed S. Darwish <ahmed.darwish@valeo.com>
Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2015-01-15 16:58:00 +01:00
..
appletalk net: better IFF_XMIT_DST_RELEASE support 2014-10-07 13:22:11 -04:00
arcnet
bonding bonding: change error message to debug message in __bond_release_one() 2014-12-27 02:20:55 -05:00
caif caif: Fix napi poll list corruption 2014-12-22 16:34:39 -05:00
can can: kvaser_usb: Don't free packets when tight on URBs 2015-01-15 16:58:00 +01:00
cris
dsa net: dsa: bcm_sf2: always select FIXED_PHY 2014-12-16 00:57:07 -05:00
ethernet be2net: Allow GRE to work concurrently while a VxLAN tunnel is configured 2015-01-15 01:55:05 -05:00
fddi defxx: Clean up DEFEA resource management 2014-11-21 16:37:13 -05:00
hamradio hamradio: 6pack: remove unnecessary check 2014-11-03 15:34:31 -05:00
hippi
hyperv hyperv: Fix some variable name typos in send-buffer init/revoke 2014-12-22 16:11:11 -05:00
ieee802154 Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ipvlan ipvlan: move the device check function into netdevice.h 2014-12-09 16:10:06 -05:00
irda Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
phy net: phy: micrel: use generic config_init for KSZ8021/KSZ8031 2014-12-26 16:19:50 -05:00
plip
ppp ppp_read(): switch to skb_copy_datagram_iter() 2014-12-09 16:29:10 -05:00
slip
team team: avoid possible underflow of count_pending value for notify_peers and mcast_rejoin 2015-01-14 16:53:57 -05:00
usb usb/kaweth: use GFP_ATOMIC under spin_lock in usb_start_wait_urb() 2015-01-12 16:42:49 -05:00
vmxnet3 ethtool: Support for configurable RSS hash function 2014-12-08 21:07:10 -05:00
wan net: better IFF_XMIT_DST_RELEASE support 2014-10-07 13:22:11 -04:00
wimax
wireless * fix for 7265D NVM check 2015-01-05 12:07:04 +02:00
xen-netback xen-netback: fixing the propagation of the transmit shaper timeout 2015-01-06 14:17:37 -05:00
dummy.c dummy: use MODULE_VERSION 2014-12-09 21:51:06 -05:00
eql.c net: better IFF_XMIT_DST_RELEASE support 2014-10-07 13:22:11 -04:00
ifb.c net: better IFF_XMIT_DST_RELEASE support 2014-10-07 13:22:11 -04:00
Kconfig ipvlan: ipvlan depends on INET and IPV6 2014-11-29 20:53:05 -08:00
LICENSE.SRC
loopback.c net: better IFF_XMIT_DST_RELEASE support 2014-10-07 13:22:11 -04:00
macvlan.c macvlan: play well with ipvlan device 2014-12-09 16:10:06 -05:00
macvtap.c macvtap: drop broken IFF_VNET_LE 2014-12-16 11:19:42 -05:00
Makefile ipvlan: Initial check-in of the IPVLAN driver. 2014-11-24 15:29:18 -05:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c tun: drop broken IFF_VNET_LE 2014-12-16 11:19:41 -05:00
veth.c
virtio_net.c virtio_net: Fix napi poll list corruption 2014-12-22 16:10:12 -05:00
vxlan.c vxlan: Fix double free of skb. 2014-12-23 23:57:31 -05:00
xen-netfront.c xen-netfront: use different locks for Rx and Tx stats 2015-01-13 17:22:11 -05:00