]> git.baikalelectronics.ru Git - kernel.git/commit
net: wwan: mhi_wwan_ctrl: Fix possible deadlock
authorLoic Poulain <loic.poulain@linaro.org>
Fri, 6 Aug 2021 10:35:09 +0000 (12:35 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 7 Aug 2021 08:35:48 +0000 (09:35 +0100)
commitcc46b3154866b3b2d43b0501aebea23de7f78807
treef068ad4f54db333014c758a47f5f66d979a5e4a5
parent75ea60a0962eaa0be74ea426aa2943707500519c
net: wwan: mhi_wwan_ctrl: Fix possible deadlock

Lockdep detected possible interrupt unsafe locking scenario:

        CPU0                    CPU1
        ----                    ----
   lock(&mhiwwan->rx_lock);
                               local_irq_disable();
                               lock(&mhi_cntrl->pm_lock);
                               lock(&mhiwwan->rx_lock);
   <Interrupt>
     lock(&mhi_cntrl->pm_lock);

  *** DEADLOCK ***

To prevent this we need to disable the soft-interrupts when taking
the rx_lock.

Cc: stable@vger.kernel.org
Fixes: f4c637da4e35 ("net: Add Qcom WWAN control driver")
Reported-by: Thomas Perrot <thomas.perrot@bootlin.com>
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wwan/mhi_wwan_ctrl.c