Messages in this thread | | | From | Andy Shevchenko <> | Date | Mon, 26 Jun 2023 09:53:49 +0300 | Subject | Re: [PATCH] gpio: gpiolib-cdev: Fix potential &lr->wait.lock deadlock issue |
| |
On Sun, Jun 25, 2023 at 5:45 PM YE Chengfeng <cyeaa@connect.ust.hk> 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
| |