Skip to content

Commit 2c09b50

Browse files
can: m_can: m_can_close(): stop clocks after device has been shut down
After calling m_can_stop() an interrupt may be pending or NAPI might still be executed. This means the driver might still touch registers of the IP core after the clocks have been disabled. This is not good practice and might lead to aborts depending on the SoC integration. To avoid these potential problems, make m_can_close() symmetric to m_can_open(), i.e. stop the clocks at the end, right before shutting down the transceiver. Fixes: e0d1f48 ("can: m_can: add Bosch M_CAN controller support") Link: https://patch.msgid.link/[email protected] Signed-off-by: Marc Kleine-Budde <[email protected]>
1 parent 801ad2f commit 2c09b50

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/net/can/m_can/m_can.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1764,7 +1764,6 @@ static int m_can_close(struct net_device *dev)
17641764
netif_stop_queue(dev);
17651765

17661766
m_can_stop(dev);
1767-
m_can_clk_stop(cdev);
17681767
free_irq(dev->irq, dev);
17691768

17701769
m_can_clean(dev);
@@ -1779,6 +1778,7 @@ static int m_can_close(struct net_device *dev)
17791778

17801779
close_candev(dev);
17811780

1781+
m_can_clk_stop(cdev);
17821782
phy_power_off(cdev->transceiver);
17831783

17841784
return 0;

0 commit comments

Comments
 (0)