aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Kleine-Budde <[email protected]>2022-06-06 14:46:18 +0200
committerMarc Kleine-Budde <[email protected]>2022-07-04 12:46:45 +0200
commitd5a972f561a003e302e4267340c57e8fbd096fa4 (patch)
treeb96e704b47cdd37afdba3aab405e33458a20a8ff
parente3d4ee7d5f7f5256dfe89219afcc7a2d553b731f (diff)
can: mcp251xfd: mcp251xfd_stop(): add missing hrtimer_cancel()
In commit 169d00a25658 ("can: mcp251xfd: add TX IRQ coalescing support") software based TX coalescing was added to the driver. The key idea is to keep the TX complete IRQ disabled for some time after processing it and re-enable later by a hrtimer. When bringing the interface down, this timer has to be stopped. Add the missing hrtimer_cancel() of the tx_irq_time hrtimer to mcp251xfd_stop(). Link: https://lore.kernel.org/all/[email protected] Fixes: 169d00a25658 ("can: mcp251xfd: add TX IRQ coalescing support") Cc: [email protected] # v5.18 Reviewed-by: Manivannan Sadhasivam <[email protected]> Signed-off-by: Marc Kleine-Budde <[email protected]>
-rw-r--r--drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index b21252390216..34b160024ce3 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -1650,6 +1650,7 @@ static int mcp251xfd_stop(struct net_device *ndev)
netif_stop_queue(ndev);
set_bit(MCP251XFD_FLAGS_DOWN, priv->flags);
hrtimer_cancel(&priv->rx_irq_timer);
+ hrtimer_cancel(&priv->tx_irq_timer);
mcp251xfd_chip_interrupts_disable(priv);
free_irq(ndev->irq, priv);
can_rx_offload_disable(&priv->offload);