Merge "pci: msm: Move rpmsg lock after command completion"

This commit is contained in:
qctecmdr 2020-11-14 17:35:49 -08:00 • committed by Gerrit - the friendly Code Review server
commit b7a4fe5073

View file

@ -6756,8 +6756,8 @@ static int msm_pcie_drv_send_rpmsg(struct msm_pcie_dev_t *pcie_dev,
mutex_lock(&pcie_drv.rpmsg_lock);
if (!pcie_drv.rpdev) {
mutex_unlock(&pcie_drv.rpmsg_lock);
return -EIO;
ret = -EIO;
goto out;
}
reinit_completion(&drv_info->completion);
@ -6775,10 +6775,8 @@ static int msm_pcie_drv_send_rpmsg(struct msm_pcie_dev_t *pcie_dev,
if (ret) {
PCIE_ERR(pcie_dev, "PCIe: RC%d: DRV: failed to send rpmsg\n",
pcie_dev->rc_idx);
mutex_unlock(&pcie_drv.rpmsg_lock);
return ret;
goto out;
}
mutex_unlock(&pcie_drv.rpmsg_lock);
ret = wait_for_completion_timeout(&drv_info->completion,
msecs_to_jiffies(drv_info->timeout_ms));
@ -6786,13 +6784,19 @@ static int msm_pcie_drv_send_rpmsg(struct msm_pcie_dev_t *pcie_dev,
PCIE_ERR(pcie_dev,
"PCIe: RC%d: DRV: completion timeout for rpmsg\n",
pcie_dev->rc_idx);
return -ETIMEDOUT;
ret = -ETIMEDOUT;
goto out;
}
ret = 0;
PCIE_DBG(pcie_dev, "PCIe: RC%d: DRV: rpmsg successfully sent\n",
pcie_dev->rc_idx);
return 0;
out:
mutex_unlock(&pcie_drv.rpmsg_lock);
return ret;
}
static int msm_pcie_drv_resume(struct msm_pcie_dev_t *pcie_dev)