summaryrefslogtreecommitdiff
path: root/drivers/scsi/sd.h
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2022-06-30 12:57:03 -0700
committerMartin K. Petersen <martin.petersen@oracle.com>2022-07-07 17:06:39 -0400
commit88f1669019bd62b3009a3cebf772fbaaa21b9f38 (patch)
treea33e057d47f7c13751c3c9e8ed9cfb40013bf47e /drivers/scsi/sd.h
parent90552cd2d1f962478f1bb426c686540cbd145bec (diff)
downloadlwn-88f1669019bd62b3009a3cebf772fbaaa21b9f38.tar.gz
lwn-88f1669019bd62b3009a3cebf772fbaaa21b9f38.zip
scsi: sd: Rework asynchronous resume support
For some technologies, e.g. an ATA bus, resuming can take multiple seconds. Waiting for resume to finish can cause a very noticeable delay. Hence this commit that restores the behavior from before "scsi: core: pm: Rely on the device driver core for async power management" for most SCSI devices. This commit introduces a behavior change: if the START command fails, do not consider this as a SCSI disk resume failure. Link: https://bugzilla.kernel.org/show_bug.cgi?id=215880 Link: https://lore.kernel.org/r/20220630195703.10155-3-bvanassche@acm.org Fixes: a19a93e4c6a9 ("scsi: core: pm: Rely on the device driver core for async power management") Cc: Ming Lei <ming.lei@redhat.com> Cc: Hannes Reinecke <hare@suse.de> Cc: John Garry <john.garry@huawei.com> Cc: ericspero@icloud.com Cc: jason600.groome@gmail.com Tested-by: jason600.groome@gmail.com Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/sd.h')
-rw-r--r--drivers/scsi/sd.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/sd.h b/drivers/scsi/sd.h
index 5eea762f84d1..b89187761d61 100644
--- a/drivers/scsi/sd.h
+++ b/drivers/scsi/sd.h
@@ -150,6 +150,11 @@ struct scsi_disk {
unsigned urswrz : 1;
unsigned security : 1;
unsigned ignore_medium_access_errors : 1;
+
+ int start_result;
+ u32 start_sense_len;
+ u8 start_sense_buffer[SCSI_SENSE_BUFFERSIZE];
+ struct work_struct start_done_work;
};
#define to_scsi_disk(obj) container_of(obj, struct scsi_disk, disk_dev)