+ } else {Is it possible to get here?
Scsi_scan_host is called only after successful add_wluns
Done.
+ /* device wlun is probed */
+ hba->luns_avail--;
+ }
+}
+
Maybe add one more sentence: see pm_runtime_mark_last_busy in ufshcd_setup_links
/**
@@ -7254,6 +7312,14 @@ static int ufshcd_scsi_add_wlus(struct ufs_hba
*hba)
goto out;
}
ufshcd_blk_pm_runtime_init(hba->sdev_ufs_device);
+ /*
+ * A pm_runtime_put_sync is invoked when this device enables
blk_pm_runtime
+ * & would suspend the device-wlun upon timer expiry.
+ * But suspending device wlun _may_ put the ufs device in the pre-defined
+ * low power mode (SSU <rpm_lvl>). Probing of other luns may fail then.
+ * Don't allow this suspend until all the luns have been probed.
Let me check.
- ufshcd_clear_ua_wluns(hba);Are there any callers left to ufshcd_clear_ua_wluns?
Can it be removed?
+ if (hba->wlun_dev_clr_ua)
+ ufshcd_clear_ua_wlun(hba, UFS_UPIU_UFS_DEVICE_WLUN);
cmd[4] = pwr_mode << 4;