Commit f52a805e authored by Ziqi Chen's avatar Ziqi Chen Committed by Martin K. Petersen

scsi: ufs: qcom: Hold the mutex lock when configuring ESI

Lock the MSI descriptor storage of a device when configuring ESI.
Otherwise we would see warnings during boot.
Signed-off-by: default avatarZiqi Chen <quic_ziqichen@quicinc.com>
Link: https://lore.kernel.org/r/1689065327-45039-1-git-send-email-quic_ziqichen@quicinc.comSigned-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 8f2b7865
...@@ -1680,6 +1680,7 @@ static int ufs_qcom_config_esi(struct ufs_hba *hba) ...@@ -1680,6 +1680,7 @@ static int ufs_qcom_config_esi(struct ufs_hba *hba)
goto out; goto out;
} }
msi_lock_descs(hba->dev);
msi_for_each_desc(desc, hba->dev, MSI_DESC_ALL) { msi_for_each_desc(desc, hba->dev, MSI_DESC_ALL) {
ret = devm_request_irq(hba->dev, desc->irq, ret = devm_request_irq(hba->dev, desc->irq,
ufs_qcom_mcq_esi_handler, ufs_qcom_mcq_esi_handler,
...@@ -1691,14 +1692,17 @@ static int ufs_qcom_config_esi(struct ufs_hba *hba) ...@@ -1691,14 +1692,17 @@ static int ufs_qcom_config_esi(struct ufs_hba *hba)
break; break;
} }
} }
msi_unlock_descs(hba->dev);
if (ret) { if (ret) {
/* Rewind */ /* Rewind */
msi_lock_descs(hba->dev);
msi_for_each_desc(desc, hba->dev, MSI_DESC_ALL) { msi_for_each_desc(desc, hba->dev, MSI_DESC_ALL) {
if (desc == failed_desc) if (desc == failed_desc)
break; break;
devm_free_irq(hba->dev, desc->irq, hba); devm_free_irq(hba->dev, desc->irq, hba);
} }
msi_unlock_descs(hba->dev);
platform_msi_domain_free_irqs(hba->dev); platform_msi_domain_free_irqs(hba->dev);
} else { } else {
if (host->hw_ver.major == 6 && host->hw_ver.minor == 0 && if (host->hw_ver.major == 6 && host->hw_ver.minor == 0 &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment