OSDN Git Service

scsi: ufs: Simplify ufshcd_set_dev_pwr_mode()
authorBart Van Assche <bvanassche@acm.org>
Sat, 15 Oct 2022 00:24:16 +0000 (17:24 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 18 Oct 2022 03:17:09 +0000 (03:17 +0000)
Simplify the code for incrementing the SCSI device reference count in
ufshcd_set_dev_pwr_mode(). This commit removes one scsi_device_put() call
that happens from atomic context.

Reviewed-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20221015002418.30955-7-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufshcd.c

index 7256e6c..c8f0fe7 100644 (file)
@@ -8752,15 +8752,10 @@ static int ufshcd_set_dev_pwr_mode(struct ufs_hba *hba,
 
        spin_lock_irqsave(hba->host->host_lock, flags);
        sdp = hba->ufs_device_wlun;
-       if (sdp) {
+       if (sdp && scsi_device_online(sdp))
                ret = scsi_device_get(sdp);
-               if (!ret && !scsi_device_online(sdp)) {
-                       ret = -ENODEV;
-                       scsi_device_put(sdp);
-               }
-       } else {
+       else
                ret = -ENODEV;
-       }
        spin_unlock_irqrestore(hba->host->host_lock, flags);
 
        if (ret)