Messages in this thread | | | Date | Sat, 7 Oct 2023 17:13:28 +0200 | From | Simon Horman <> | Subject | Re: [PATCH v2 2/2] atm: solos-pci: Fix potential deadlock on &tx_queue_lock |
| |
On Thu, Oct 05, 2023 at 07:49:17AM +0000, Chengfeng Ye wrote: > As &card->tx_queue_lock is acquired under softirq context along the > following call chain from solos_bh(), other acquisition of the same > lock inside process context should disable at least bh to avoid double > lock. > > <deadlock #2> > pclose() > --> spin_lock(&card->tx_queue_lock) > <interrupt> > --> solos_bh() > --> fpga_tx() > --> spin_lock(&card->tx_queue_lock) > > This flaw was found by an experimental static analysis tool I am > developing for irq-related deadlock. > > To prevent the potential deadlock, the patch uses spin_lock_irqsave() > on &card->tx_queue_lock under process context code consistently to > prevent the possible deadlock scenario. > > Fixes: 213e85d38912 ("solos-pci: clean up pclose() function") > Signed-off-by: Chengfeng Ye <dg573847474@gmail.com> > --- > V2: add fix tag, and split into two patches
Reviewed-by: Simon Horman <horms@kernel.org>
| |