diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2021-05-05 13:32:27 +0200 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2021-05-06 09:24:07 +0200 |
commit | e04b2cfe61072c7966e1a5fb73dd1feb30c206ed (patch) | |
tree | 75e4c665edffabc8bd7631af5dfbf797f4d3a580 /drivers/bus/vexpress-config.c | |
parent | 03c427147b2d3e503af258711af4fc792b89b0af (diff) |
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: f524f829b75a ("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>
Diffstat (limited to 'drivers/bus/vexpress-config.c')
0 files changed, 0 insertions, 0 deletions