linux/drivers/net/can
Marc Kleine-Budde e04b2cfe61 can: m_can: m_can_tx_work_queue(): fix tx_skb race condition
The m_can_start_xmit() function checks if the cdev->tx_skb is NULL and
returns with NETDEV_TX_BUSY in case tx_sbk is not NULL.

There is a race condition in the m_can_tx_work_queue(), where first
the skb is send to the driver and then the case tx_sbk is set to NULL.
A TX complete IRQ might come in between and wake the queue, which
results in tx_skb not being cleared yet.

Fixes: f524f829b7 ("can: m_can: Create a m_can platform framework")
Tested-by: Torin Cooper-Bennun <torin@maxiluxsystems.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2021-05-06 09:24:07 +02:00
..
c_can
cc770
dev
ifi_canfd
m_can can: m_can: m_can_tx_work_queue(): fix tx_skb race condition 2021-05-06 09:24:07 +02:00
mscan
peak_canfd
rcar
sja1000
softing
spi can: mcp251x: fix resume from sleep before interface was brought up 2021-05-06 09:24:07 +02:00
usb can: etas_es58x: Fix a couple of spelling mistakes 2021-04-24 14:36:50 +02:00
Kconfig
Makefile
at91_can.c
flexcan.c
grcan.c
janz-ican3.c
kvaser_pciefd.c
led.c
pch_can.c
slcan.c
sun4i_can.c
ti_hecc.c
vcan.c
vxcan.c
xilinx_can.c