linux/drivers/scsi
Damien Le Moal b09d7f8fd5 scsi: sd: Fix system start for ATA devices
It is not always possible to keep a device in the runtime suspended state
when a system level suspend/resume cycle is executed. E.g. for ATA devices
connected to AHCI adapters, system resume resets the ATA ports, which
causes connected devices to spin up. In such case, a runtime suspended disk
will incorrectly be seen with a suspended runtime state because the device
is not resumed by sd_resume_system(). The power state seen by the user is
different than the actual device physical power state.

Fix this issue by introducing the struct scsi_device flag
force_runtime_start_on_system_start. When set, this flag causes
sd_resume_system() to request a runtime resume operation for runtime
suspended devices. This results in the user seeing the device runtime_state
as active after a system resume, thus correctly reflecting the device
physical power state.

Fixes: 9131bff6a9 ("scsi: core: pm: Only runtime resume if necessary")
Cc: <stable@vger.kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20231120225631.37938-3-dlemoal@kernel.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2023-11-24 20:44:21 -05:00
..
aacraid Merge branch '6.5/scsi-fixes' into 6.6/scsi-staging 2023-08-30 20:56:24 -04:00
aic7xxx scsi: aic79xx: Fix up NULL command in ahd_done() 2023-10-24 22:38:34 -04:00
aic94xx scsi: libsas: Delete sas_ata_task.retry_count 2023-08-21 17:50:59 -04:00
arcmsr scsi: arcmsr: Add __init and __exit for arcmsr_module_{init,exit}() 2023-08-21 16:27:10 -04:00
arm scsi: powertec: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
be2iscsi scsi: be2iscsi: Add length check when parsing nlattrs 2023-07-25 21:49:32 -04:00
bfa scsi: bfa: Replace one-element array with flexible-array member in struct fc_rscn_pl_s 2023-08-21 17:13:56 -04:00
bnx2fc scsi: bnx2fc: Do not rely on a SCSI command for LUN or target reset 2023-10-13 14:23:14 -04:00
bnx2i scsi: bnx2i: Replace all non-returning strlcpy with strscpy 2023-05-26 13:52:19 -07:00
csiostor scsi: csiostor: Remove unnecessary aer.h include 2023-03-09 22:00:38 -05:00
cxgbi scsi: cxgbi: Fix 'generated' typo 2023-10-13 14:15:54 -04:00
cxlflash Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
device_handler scsi: rdac: Fix sshdr use 2023-10-13 16:36:20 -04:00
elx scsi: target: Have drivers report if they support direct submissions 2023-10-13 15:53:57 -04:00
esas2r scsi: esas2r: Use FIELD_GET() to extract PCIe capability fields 2023-09-13 21:01:59 -04:00
fcoe scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock 2023-08-21 17:13:56 -04:00
fnic SCSI misc on 20231102 2023-11-02 15:13:50 -10:00
hisi_sas As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
ibmvscsi Merge patch series "scsi: EH rework prep patches, part 1" 2023-10-13 14:25:20 -04:00
ibmvscsi_tgt scsi: target: Have drivers report if they support direct submissions 2023-10-13 15:53:57 -04:00
isci Merge patch series "libsas: Some tidy-up" 2023-08-24 21:06:16 -04:00
libfc scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup() 2023-10-13 14:15:54 -04:00
libsas scsi: libsas: Declare sas_discover_end_dev() static 2023-09-13 21:06:44 -04:00
lpfc SCSI misc on 20231102 2023-11-02 15:13:50 -10:00
megaraid Merge patch series "megaraid_sas: Driver version update to 07.727.03.00-rc1" 2023-10-13 16:52:47 -04:00
mpi3mr scsi: mpi3mr: Split off bus_reset function from host_reset 2023-10-13 14:23:15 -04:00
mpt3sas SCSI misc on 20231102 2023-11-02 15:13:50 -10:00
mvsas scsi: libsas: Delete sas_ssp_task.task_prio 2023-08-21 17:50:58 -04:00
pcmcia scsi: Add HAS_IOPORT dependencies 2023-05-31 19:59:26 -04:00
pm8001 scsi: pm8001: Remove PM8001_READ_VPD 2023-09-21 21:39:47 -04:00
qedf Merge patch series "scsi: EH rework prep patches, part 1" 2023-10-13 14:25:20 -04:00
qedi Merge branch '6.5/scsi-fixes' into 6.6/scsi-staging 2023-08-30 20:56:24 -04:00
qla2xxx Merge branch '6.7/scsi-staging' into 6.7/scsi-fixes 2023-11-14 11:40:40 -05:00
qla4xxx scsi: qla4xxx: Add length check when parsing nlattrs 2023-07-25 21:51:04 -04:00
smartpqi Merge patch series "smartpqi updates" 2023-08-24 22:58:36 -04:00
snic scsi: snic: Remove useless code in snic_dr_clean_pending_req() 2023-10-24 22:33:02 -04:00
sym53c8xx_2 scsi: sym53c8xx_2: Rework reset handling 2023-10-13 14:23:15 -04:00
.gitignore
3w-9xxx.c scsi: 3w-9xxx: Replace all non-returning strlcpy with strscpy 2023-05-26 13:52:19 -07:00
3w-9xxx.h
3w-sas.c scsi: 3w-sas: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
3w-sas.h scsi: 3w-sas: Replace 1-element arrays with flexible array members 2023-01-12 00:09:52 -05:00
3w-xxxx.c scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe() 2023-05-22 17:31:56 -04:00
3w-xxxx.h scsi: 3w-xxxx: Replace one-element array with flexible-array member 2022-09-25 13:06:00 -04:00
53c700_d.h_shipped
53c700.c scsi: 53c700: Check that command slot is not NULL 2023-07-31 14:38:17 -04:00
53c700.h
53c700.scr
a100u2w.c scsi: a100u2w: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
a100u2w.h
a2091.c scsi: a2091: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
a2091.h
a3000.c scsi: a3000: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
a3000.h
a4000t.c
advansys.c scsi: advansys: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
aha152x.c scsi: aha152x: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
aha152x.h
aha1542.c scsi: aha1542: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
aha1542.h
aha1740.c scsi: aha1740: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
aha1740.h
am53c974.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
atari_scsi.c
atp870u.c scsi: atp870u: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
atp870u.h
BusLogic.c scsi: BusLogic: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
BusLogic.h
bvme6000_scsi.c
ch.c scsi: replace the fmode_t argument to scsi_ioctl with a simple bool 2023-06-12 08:04:04 -06:00
constants.c
dc395x.c scsi: dc395x: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
dc395x.h
dmx3191d.c scsi: dmx3191d: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
esp_scsi.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
esp_scsi.h scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
fdomain_isa.c
fdomain_pci.c
fdomain.c scsi: fdomain: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
fdomain.h
FlashPoint.c scsi: FlashPoint: Remove redundant variable bm_int_st 2022-08-01 19:52:03 -04:00
g_NCR5380.c scsi: NCR5380: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
gvp11.c scsi: gvp11: Remove unused gvp11_setup() function 2023-08-21 16:37:11 -04:00
gvp11.h
hosts.c scsi: core: Use 32-bit hostnum in scsi_host_lookup() 2023-08-21 16:42:03 -04:00
hpsa_cmd.h
hpsa.c Merge patch series "Constify most SCSI host templates" 2023-03-24 20:13:03 -04:00
hpsa.h
hptiop.c overflow: Add struct_size_t() helper 2023-05-26 13:52:19 -07:00
hptiop.h scsi: hptiop: Replace one-element array with flexible-array member in struct hpt_iop_request_ioctl_command() 2022-09-25 13:04:17 -04:00
imm.c scsi: imm: Add a module parameter for the transfer mode 2023-09-13 21:11:55 -04:00
imm.h scsi: imm: Add a module parameter for the transfer mode 2023-09-13 21:11:55 -04:00
initio.c scsi: initio: Declare SCSI host template const 2023-03-24 19:19:56 -04:00
initio.h
ipr.c scsi: ipr: Do PCI error checks on own line 2023-10-10 16:40:19 -05:00
ipr.h scsi: ipr: Remove SATA support 2023-04-18 23:01:23 -04:00
ips.c scsi: ips: Do not try to abort command from host reset 2023-10-13 14:23:15 -04:00
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c scsi: iscsi_tcp: restrict to TCP sockets 2023-09-17 17:46:13 +01:00
iscsi_tcp.h scsi: iscsi_tcp: Use sendmsg(MSG_SPLICE_PAGES) rather than sendpage 2023-06-24 15:50:13 -07:00
jazz_esp.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
Kconfig scsi: imm: Add a module parameter for the transfer mode 2023-09-13 21:11:55 -04:00
lasi700.c
libiscsi_tcp.c
libiscsi.c scsi: iscsi: Declare SCSI host template const 2023-03-24 19:19:57 -04:00
mac53c94.c scsi: mac53c94: Declare SCSI host template const 2023-03-24 19:19:57 -04:00
mac53c94.h
mac_esp.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
mac_scsi.c
Makefile
megaraid.c scsi: megaraid: Fix up debug message in megaraid_abort_and_reset() 2023-10-24 22:40:39 -04:00
megaraid.h
mesh.c scsi: mesh: Declare SCSI host template const 2023-03-24 19:19:57 -04:00
mesh.h
mvme16x_scsi.c
mvme147.c scsi: mvme147: Declare SCSI host template const 2023-03-24 19:19:57 -04:00
mvme147.h
mvumi.c scsi: core: Improve type safety of scsi_rescan_device() 2023-08-24 22:11:29 -04:00
mvumi.h scsi: mvumi: Replace 1-element arrays with flexible array members 2023-01-12 00:11:11 -05:00
myrb.c scsi: myrb: Declare SCSI host template const 2023-03-24 19:19:58 -04:00
myrb.h
myrs.c scsi: myrs: Declare SCSI host template const 2023-03-24 19:19:58 -04:00
myrs.h
ncr53c8xx.c scsi: ncr53c8xx: Replace strlcpy() with strscpy() 2023-06-21 21:13:00 -04:00
ncr53c8xx.h
NCR5380.c scsi: NCR5380: Use default @max_active for hostdata->work_q 2023-05-22 15:13:03 -10:00
NCR5380.h
nsp32_debug.c
nsp32_io.h
nsp32.c scsi: nsp32: Declare SCSI host template const 2023-03-24 19:19:58 -04:00
nsp32.h
pmcraid.c scsi: pmcraid: Add missing scsi_device_put() in pmcraid_eh_target_reset_handler() 2023-10-24 22:24:32 -04:00
pmcraid.h
ppa.c scsi: ppa: Fix accidentally reversed conditions for 16-bit and 32-bit EPP 2023-09-05 05:26:49 -04:00
ppa.h scsi: ppa: Add a module parameter for the transfer mode 2023-08-21 16:32:40 -04:00
ps3rom.c scsi: ps3rom: Declare SCSI host template const 2023-03-24 19:19:58 -04:00
qla1280.c scsi: qla1280: Separate out host reset function from qla1280_error_action() 2023-10-13 14:23:15 -04:00
qla1280.h
qlogicfas408.c
qlogicfas408.h
qlogicfas.c
qlogicpti.c scsi: qlogicpti: Mark qlogicpti_info() static 2023-08-21 16:37:11 -04:00
qlogicpti.h
raid_class.c scsi: core: raid_class: Remove raid_component_add() 2023-08-24 21:34:28 -04:00
script_asm.pl
scsi_bsg.c scsi: replace the fmode_t argument to ->sg_io_fn with a simple bool 2023-06-12 08:04:04 -06:00
scsi_common.c scsi: core: Use min() instead of open-coding it 2023-05-31 11:05:34 -04:00
scsi_debug.c scsi: scsi_debug: Delete some bogus error checking 2023-11-08 21:42:26 -05:00
scsi_debugfs.c scsi: core: Report error list information in debugfs 2023-08-24 22:13:03 -04:00
scsi_debugfs.h
scsi_devinfo.c scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR 2023-03-16 22:54:43 -04:00
scsi_dh.c
scsi_error.c scsi: sd: Handle read/write CDL timeout failures 2023-05-22 17:05:19 -04:00
scsi_ioctl.c scsi: replace the fmode_t argument to scsi_ioctl with a simple bool 2023-06-12 08:04:04 -06:00
scsi_lib_dma.c
scsi_lib.c scsi: core: Clean up scsi_dev_queue_ready() 2023-10-24 22:31:04 -04:00
scsi_logging.c
scsi_logging.h
scsi_netlink.c
scsi_pm.c
scsi_priv.h scsi: core: Improve type safety of scsi_rescan_device() 2023-08-24 22:11:29 -04:00
scsi_proc.c scsi: core: Fix legacy /proc parsing buffer overflow 2023-07-31 15:39:39 -04:00
scsi_sas_internal.h
scsi_scan.c scsi: Do not rescan devices with a suspended queue 2023-10-10 14:42:22 +09:00
scsi_sysctl.c scsi: Remove now superfluous sentinel element from ctl_table array 2023-10-11 12:16:13 -07:00
scsi_sysfs.c scsi: core: Improve type safety of scsi_rescan_device() 2023-08-24 22:11:29 -04:00
scsi_trace.c
scsi_transport_api.h
scsi_transport_fc.c scsi: core: Replace scsi_target_block() with scsi_block_targets() 2023-06-16 12:19:59 -04:00
scsi_transport_iscsi.c scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param() 2023-07-25 21:48:13 -04:00
scsi_transport_sas.c scsi: core: Support retrieving sub-pages of mode pages 2023-05-22 17:05:19 -04:00
scsi_transport_spi.c scsi: spi: Fix sshdr use 2023-10-13 16:36:20 -04:00
scsi_transport_srp.c scsi: core: Replace scsi_target_block() with scsi_block_targets() 2023-06-16 12:19:59 -04:00
scsi.c SCSI misc on 20231102 2023-11-02 15:13:50 -10:00
scsicam.c
sd_dif.c scsi: sd: Update DIX config every time sd_revalidate_disk() is called 2023-02-21 22:00:32 -05:00
sd_trace.h scsi: sd: sd_zbc: Trace zone append emulation 2022-12-01 03:13:55 +00:00
sd_zbc.c scsi: sd_zbc: Set zone limits before revalidating zones 2023-07-05 21:58:10 -04:00
sd.c scsi: sd: Fix system start for ATA devices 2023-11-24 20:44:21 -05:00
sd.h scsi: sd: Do not issue commands to suspended disks on shutdown 2023-09-28 21:23:18 +09:00
sense_codes.h
ses.c Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
sg.c scsi: Remove now superfluous sentinel element from ctl_table array 2023-10-11 12:16:13 -07:00
sgiwd93.c scsi: sgiwd93: Declare SCSI host template const 2023-03-24 19:19:59 -04:00
sim710.c
sni_53c710.c
sr_ioctl.c scsi: sr: Convert to scsi_execute_cmd() 2023-01-13 21:34:09 -05:00
sr_vendor.c
sr.c scsi: sr: Fix sshdr use in sr_get_events 2023-10-13 16:36:20 -04:00
sr.h
st_options.h
st.c scsi: st: Add third party poweron reset handling 2023-08-24 22:16:28 -04:00
st.h
stex.c scsi: stex: Fix gcc 13 warnings 2023-05-31 11:36:40 -04:00
storvsc_drv.c Merge branch '6.5/scsi-fixes' into 6.6/scsi-staging 2023-08-30 20:56:24 -04:00
sun3_scsi_vme.c
sun3_scsi.c
sun3x_esp.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
sun_esp.c scsi: sun_esp: Explicitly include correct DT includes 2023-07-23 15:49:41 -04:00
virtio_scsi.c scsi: core: Improve type safety of scsi_rescan_device() 2023-08-24 22:11:29 -04:00
vmw_pvscsi.c
vmw_pvscsi.h
wd33c93.c scsi: wd33c93: Remove dead code related to the long-gone config WD33C93_PIO 2022-09-25 13:29:53 -04:00
wd33c93.h scsi: wd33c93: Remove dead code related to the long-gone config WD33C93_PIO 2022-09-25 13:29:53 -04:00
wd719x.c scsi: wd719x: Declare SCSI host template const 2023-03-24 19:19:59 -04:00
wd719x.h
xen-scsifront.c scsi: xen-scsifront: shost_priv() can never return NULL 2023-08-24 22:06:44 -04:00
zalon.c
zorro7xx.c
zorro_esp.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00