linux-stable/drivers/net/can/m_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
..
Kconfig can: m_can: add PCI glue driver for Intel Elkhart Lake 2020-12-10 10:40:10 +01:00
m_can.c can: m_can: m_can_tx_work_queue(): fix tx_skb race condition 2021-05-06 09:24:07 +02:00
m_can.h can: m_can: fix periph RX path: use rx-offload to ensure skbs are sent from softirq context 2021-03-30 11:14:48 +02:00
m_can_pci.c can: m_can: use struct m_can_classdev as drvdata 2020-12-14 14:24:17 +01:00
m_can_platform.c can: m_can: use struct m_can_classdev as drvdata 2020-12-14 14:24:17 +01:00
Makefile can: tcan4x5x: move regmap code into seperate file 2021-01-06 15:15:37 +01:00
tcan4x5x-core.c can: tcan4x5x: tcan4x5x_init(): fix initialization - clear MRAM before entering Normal Mode 2021-03-01 11:45:15 +01:00
tcan4x5x-regmap.c can: tcan4x5x: add support for half-duplex controllers 2021-01-06 15:15:41 +01:00
tcan4x5x.h can: tcan4x5x: remove duplicate include of regmap.h 2021-03-30 11:14:48 +02:00