mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-07 18:05:21 +02:00
FROMLIST: sd: Retry START STOP UNIT commands
During system resume, sd_start_stop_device() submits a START STOP UNIT command to the SCSI device that is being resumed. That command is not retried in case of a unit attention and hence may fail. An example: [16575.983359] sd 0:0:0:3: [sdd] Starting disk [16575.983693] sd 0:0:0:3: [sdd] Start/Stop Unit failed: Result: hostbyte=0x00 driverbyte=DRIVER_OK [16575.983712] sd 0:0:0:3: [sdd] Sense Key : 0x6 [16575.983730] sd 0:0:0:3: [sdd] ASC=0x29 ASCQ=0x0 [16575.983738] sd 0:0:0:3: PM: dpm_run_callback(): scsi_bus_resume+0x0/0xa0 returns -5 [16575.983783] sd 0:0:0:3: PM: failed to resume async: error -5 Make the SCSI core retry the START STOP UNIT command if a retryable error is encountered. Cc: Damien Le Moal <dlemoal@kernel.org> Cc: Mike Christie <michael.christie@oracle.com> Change-Id: Ic8e0859c4455d93fcabee42f1598858571f5f3d1 Signed-off-by: Bart Van Assche <bvanassche@acm.org> Bug: 348341595 Link: https://lore.kernel.org/linux-scsi/yq17ccp1i4b.fsf@ca-mkp.ca.oracle.com/T/#m52a26a50649b1d537cb129e5653f723509d6bde7 Signed-off-by: Bart Van Assche <bvanassche@google.com>
This commit is contained in:
parent
d1d8ed2618
commit
a32bc6101c
|
@ -3838,6 +3838,7 @@ static int sd_start_stop_device(struct scsi_disk *sdkp, int start)
|
|||
const struct scsi_exec_args exec_args = {
|
||||
.sshdr = &sshdr,
|
||||
.req_flags = BLK_MQ_REQ_PM,
|
||||
.scmd_flags = SCMD_RETRY_PASSTHROUGH,
|
||||
};
|
||||
struct scsi_device *sdp = sdkp->device;
|
||||
int res;
|
||||
|
|
Loading…
Reference in New Issue
Block a user