linux/drivers/net/can
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
..
c_can can: c_can: use regmap_update_bits() to modify RAMINIT register 2015-01-15 16:58:00 +01:00
cc770 Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
m_can can: m_can: tag current CAN FD controllers as non-ISO 2015-01-15 16:57:59 +01:00
mscan Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
sja1000 Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
softing net: can: softing: drop owner assignment from platform_drivers 2014-10-20 16:21:01 +02:00
spi can: mcp251x: Use dmam_alloc_coherent 2014-08-18 01:03:43 +02:00
usb can: kvaser_usb: Don't free packets when tight on URBs 2015-01-15 16:58:00 +01:00
at91_can.c net: can: drop owner assignment from platform_drivers 2014-10-20 16:20:59 +02:00
bfin_can.c net: can: drop owner assignment from platform_drivers 2014-10-20 16:20:59 +02:00
dev.c can: dev: fix crtlmode_supported check 2015-01-15 16:57:59 +01:00
flexcan.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
grcan.c net: can: drop owner assignment from platform_drivers 2014-10-20 16:20:59 +02:00
janz-ican3.c net: can: drop owner assignment from platform_drivers 2014-10-20 16:20:59 +02:00
Kconfig drivers/net/can/Kconfig: Let CAN_AT91 depend on HAS_IOMEM 2014-10-03 15:52:03 -07:00
led.c can: only rename enabled led triggers when changing the netdev name 2014-05-27 15:05:41 +02:00
Makefile can: Enable -D__CHECK_ENDIAN__ for sparse by default 2014-12-07 21:22:06 +01:00
pch_can.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
rcar_can.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
slcan.c can: slcan/vcan: eliminate banner[] variable, switch to pr_info() 2014-12-07 21:22:05 +01:00
ti_hecc.c net: can: drop owner assignment from platform_drivers 2014-10-20 16:20:59 +02:00
vcan.c can: slcan/vcan: eliminate banner[] variable, switch to pr_info() 2014-12-07 21:22:05 +01:00
xilinx_can.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00