]> Git Repo - linux.git/commitdiff
scsi: ufs: core: Add missing host_lock in ufshcd_vops_setup_xfer_req()
authorJaegeuk Kim <[email protected]>
Thu, 1 Jul 2021 00:51:17 +0000 (17:51 -0700)
committerMartin K. Petersen <[email protected]>
Tue, 13 Jul 2021 02:02:06 +0000 (22:02 -0400)
This patch adds a host_lock which existed before on
ufshcd_vops_setup_xfer_req().

Link: https://lore.kernel.org/r/[email protected]
Fixes: a45f937110fa ("scsi: ufs: Optimize host lock on transfer requests send/compl paths")
Cc: Stanley Chu <[email protected]>
Cc: Can Guo <[email protected]>
Cc: Bean Huo <[email protected]>
Cc: Bart Van Assche <[email protected]>
Cc: Asutosh Das <[email protected]>
Reviewed-by: Bart Van Assche <[email protected]>
Signed-off-by: Jaegeuk Kim <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
drivers/scsi/ufs/ufshcd.h

index c98d540ac044d06081673dc3c90cc0a10d14555c..194755c9ddfeb8770d584ed1d1ec3868bcb69fdb 100644 (file)
@@ -1229,8 +1229,13 @@ static inline int ufshcd_vops_pwr_change_notify(struct ufs_hba *hba,
 static inline void ufshcd_vops_setup_xfer_req(struct ufs_hba *hba, int tag,
                                        bool is_scsi_cmd)
 {
-       if (hba->vops && hba->vops->setup_xfer_req)
-               return hba->vops->setup_xfer_req(hba, tag, is_scsi_cmd);
+       if (hba->vops && hba->vops->setup_xfer_req) {
+               unsigned long flags;
+
+               spin_lock_irqsave(hba->host->host_lock, flags);
+               hba->vops->setup_xfer_req(hba, tag, is_scsi_cmd);
+               spin_unlock_irqrestore(hba->host->host_lock, flags);
+       }
 }
 
 static inline void ufshcd_vops_setup_task_mgmt(struct ufs_hba *hba,
This page took 0.064825 seconds and 4 git commands to generate.