summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2021-05-05 13:32:27 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-05-19 10:13:08 +0200
commit26359d362c93bdca3038f7f70d28d5ed46222a03 (patch)
treea1d50f61d9e383002d4ba39b6864a9942be8f159 /kernel
parenteecb4df8ec9f896b19ee05bfa632ac6c1dcd8f21 (diff)
can: m_can: m_can_tx_work_queue(): fix tx_skb race condition
[ Upstream commit e04b2cfe61072c7966e1a5fb73dd1feb30c206ed ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions