On Sun, Jun 25, 2023 at 5:45 PM YE Chengfeng <cyeaa@xxxxxxxxxxxxxx> wrote: > > linereq_put_event is called from both interrupt context (e.g., > edge_irq_thread) and process context (process_hw_ts_thread). > Therefore, interrupt should be disabled before acquiring lock > &lr->wait.lock inside linereq_put_event to avoid deadlock when > the lock is held in process context and edge_irq_thread comes. > > Similarly, linereq_read_unlocked running in process context > also acquies the same lock. It also need to disable interrupt acquires > otherwise deadlock could happen if the irq edge_irq_thread > comes to execution while the lock is held. > > Fix the two potential deadlock issues by spin_lock_irqsave. Sounds legit to me, but 1) do you have any warning/oops/etc to show the real case? 2) shouldn't we annotate with respective lockdep asserts this code? -- With Best Regards, Andy Shevchenko