scsi: ufs: Try harder to change the power mode
[ Upstream commit579a4e9dbd
] Instead of only retrying the START STOP UNIT command if a unit attention is reported, repeat it if any SCSI error is reported by the device or if the command timed out. Signed-off-by: Bart Van Assche <bvanassche@acm.org> Link: https://lore.kernel.org/r/20221018202958.1902564-8-bvanassche@acm.org Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Stable-dep-of:fe8637f770
("scsi: ufs: core: Increase the START STOP UNIT timeout from one to ten seconds") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
9fc3adc6d0
commit
6ab081571f
|
@ -8830,9 +8830,11 @@ static int ufshcd_set_dev_pwr_mode(struct ufs_hba *hba,
|
||||||
for (retries = 3; retries > 0; --retries) {
|
for (retries = 3; retries > 0; --retries) {
|
||||||
ret = scsi_execute(sdp, cmd, DMA_NONE, NULL, 0, NULL, &sshdr,
|
ret = scsi_execute(sdp, cmd, DMA_NONE, NULL, 0, NULL, &sshdr,
|
||||||
HZ, 0, 0, RQF_PM, NULL);
|
HZ, 0, 0, RQF_PM, NULL);
|
||||||
if (!scsi_status_is_check_condition(ret) ||
|
/*
|
||||||
!scsi_sense_valid(&sshdr) ||
|
* scsi_execute() only returns a negative value if the request
|
||||||
sshdr.sense_key != UNIT_ATTENTION)
|
* queue is dying.
|
||||||
|
*/
|
||||||
|
if (ret <= 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
|
Loading…
Reference in New Issue