The function m_can_runtime_resume() is getting recursively called from m_can_class_resume(). This results in a lock up. We need not call m_can_class_resume() during m_can_runtime_resume().
Unified · Split
| @@ -166,8 +166,6 @@ static int __maybe_unused m_can_runtime_resume(struct device *dev) · 165 unmodified lines | ||
| 166 | 166 | if (err) |
| 167 | 167 | clk_disable_unprepare(mcan_class->hclk); |
| 168 | 168 | |
| 169 | − m_can_class_resume(dev); | |
| 170 | − | |
| 171 | 169 | return err; |
| 172 | 170 | } |
| 173 | 171 | |