mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-22 20:49:03 -04:00
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Presently in the driver, we get the MSI interrupt to wake up from suspend which directs the call to the both kernel and driver. In the driver, the HIF callback target_initial_wakeup_cb registered, gets called in interrupt context while that through the kernel get scheduled in thread context. These two call can potentially get into a deadlock. The scenario can be described as: - MSI interrupt raised - callback invoked from kernel -> takes spinlock on psoc->lock - hif callback in interrupt context -> spins on the same psoc->lock - deadlock The problem arises due to the fact that both the kernel thread and the interrupt handler are executing on the same CPU. This causes the spinlock in the interrupt context to spin forever. The solution to mitigate this scenario is to not take the reference inside the hif callback pmo_core_psoc_handle_initial_wake_up. This reference was put in place to prevent the wake up callback from getting affected by psoc creation and deletion. But there seems no need for this as creation and deletion of psoc happens outside the time-scope of the wake up callback. Change-Id: I566ab08802ba3f38e154d26599c73d718ec74bfb CRs-Fixed: 2556497 |
||
| .. | ||
| core | ||
| dispatcher | ||