mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
Merge "msm: pci : Avoid deadlock with recovery and enemurate lock"
This commit is contained in:
commit
dc8e61bd5a
1 changed files with 7 additions and 4 deletions
|
|
@ -7898,6 +7898,7 @@ int msm_pcie_pm_control(enum msm_pcie_pm_opt pm_opt, u32 busnr, void *user,
|
|||
break;
|
||||
}
|
||||
|
||||
mutex_lock(&pcie_dev->recovery_lock);
|
||||
mutex_lock(&pcie_dev->enumerate_lock);
|
||||
|
||||
/*
|
||||
|
|
@ -7928,12 +7929,12 @@ int msm_pcie_pm_control(enum msm_pcie_pm_opt pm_opt, u32 busnr, void *user,
|
|||
"PCIe: RC%d: request to suspend the link is rejected\n",
|
||||
pcie_dev->rc_idx);
|
||||
mutex_unlock(&pcie_dev->enumerate_lock);
|
||||
mutex_unlock(&pcie_dev->recovery_lock);
|
||||
break;
|
||||
}
|
||||
|
||||
pcie_dev->user_suspend = true;
|
||||
|
||||
mutex_lock(&pcie_dev->recovery_lock);
|
||||
|
||||
ret = msm_pcie_pm_suspend(dev, user, data, options);
|
||||
if (ret) {
|
||||
|
|
@ -7949,9 +7950,9 @@ int msm_pcie_pm_control(enum msm_pcie_pm_opt pm_opt, u32 busnr, void *user,
|
|||
}
|
||||
}
|
||||
|
||||
mutex_unlock(&pcie_dev->recovery_lock);
|
||||
|
||||
mutex_unlock(&pcie_dev->enumerate_lock);
|
||||
|
||||
mutex_unlock(&pcie_dev->recovery_lock);
|
||||
break;
|
||||
case MSM_PCIE_RESUME:
|
||||
PCIE_DBG(pcie_dev,
|
||||
|
|
@ -7964,6 +7965,8 @@ int msm_pcie_pm_control(enum msm_pcie_pm_opt pm_opt, u32 busnr, void *user,
|
|||
break;
|
||||
}
|
||||
|
||||
mutex_lock(&pcie_dev->recovery_lock);
|
||||
|
||||
/* when link was suspended and link resume is requested */
|
||||
mutex_lock(&pcie_dev->enumerate_lock);
|
||||
list_for_each_entry(dev_info_itr, &pcie_dev->susp_ep_list,
|
||||
|
|
@ -7990,10 +7993,10 @@ int msm_pcie_pm_control(enum msm_pcie_pm_opt pm_opt, u32 busnr, void *user,
|
|||
PCIE_ERR(pcie_dev,
|
||||
"PCIe: RC%d: requested to resume when link is already powered on.\n",
|
||||
pcie_dev->rc_idx);
|
||||
mutex_unlock(&pcie_dev->recovery_lock);
|
||||
break;
|
||||
}
|
||||
|
||||
mutex_lock(&pcie_dev->recovery_lock);
|
||||
ret = msm_pcie_pm_resume(dev, user, data, options);
|
||||
if (ret) {
|
||||
PCIE_ERR(pcie_dev,
|
||||
|
|
|
|||
Loading…
Reference in a new issue