https://bugzilla.kernel.org/show_bug.cgi?id=195729 --- Comment #3 from jqiaoulk@xxxxxxxxx --- This is the root cause, which is pretty straightforward: The spin lock is firstly acquired at the following function: OutputResults CSTmMasterOutput::Start(const stm_display_mode_t* pModeLine) { vibe_os_lock_resource(m_lock); if(!this->SetOutputFormat(m_ulOutputFormat)) { TRC; goto stop_and_exit; } vibe_os_unlock_resource(m_lock); } and this->SetOutputFormat will eventually call vibe_os_clk_set_parent() as below: bool CSTmClockLLA::Enable { vibe_os_clk_set_parent(output, source); } Based on the callstack, we know vibe_os_clk_set_parent will call clk_set_parent(). clk_set_parent() is a basic kernel API that would potentially go to sleep, based on the call stack in the log. Therefore, CSTmMasterOutput::Start would potentially go to sleeps while holding spin_Lock(). -- You are receiving this mail because: You are watching the assignee of the bug.