diff options
author | Ziqi Chen <quic_ziqichen@quicinc.com> | 2023-07-11 11:48:46 +0300 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2023-07-23 22:24:49 +0300 |
commit | f52a805e19b169989ec6c61254529b273a18116d (patch) | |
tree | e48e6ccc8f9f4a2900a67cdeead59469773c0b23 /drivers/ufs | |
parent | 8f2b78652d0552e157a0b9cd354f2e5c20ba98ca (diff) | |
download | linux-f52a805e19b169989ec6c61254529b273a18116d.tar.xz |
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: Ziqi Chen <quic_ziqichen@quicinc.com>
Link: https://lore.kernel.org/r/1689065327-45039-1-git-send-email-quic_ziqichen@quicinc.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/ufs')
-rw-r--r-- | drivers/ufs/host/ufs-qcom.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index f36bcdbea938..d29e63e4a4f8 100644 --- a/drivers/ufs/host/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -1680,6 +1680,7 @@ static int ufs_qcom_config_esi(struct ufs_hba *hba) goto out; } + msi_lock_descs(hba->dev); msi_for_each_desc(desc, hba->dev, MSI_DESC_ALL) { ret = devm_request_irq(hba->dev, desc->irq, ufs_qcom_mcq_esi_handler, @@ -1691,14 +1692,17 @@ static int ufs_qcom_config_esi(struct ufs_hba *hba) break; } } + msi_unlock_descs(hba->dev); if (ret) { /* Rewind */ + msi_lock_descs(hba->dev); msi_for_each_desc(desc, hba->dev, MSI_DESC_ALL) { if (desc == failed_desc) break; devm_free_irq(hba->dev, desc->irq, hba); } + msi_unlock_descs(hba->dev); platform_msi_domain_free_irqs(hba->dev); } else { if (host->hw_ver.major == 6 && host->hw_ver.minor == 0 && |