linux_dsm_epyc7002/drivers/scsi
Can Guo 5515b85e1a scsi: ufs: core: Narrow down fast path in system suspend path
[ Upstream commit ce4f62f9dd8cf43ac044045ed598a0b80ef33890 ]

If spm_lvl is set to 0 or 1, when system suspend kicks start and HBA is
runtime active, system suspend may just bail without doing anything (the
fast path), leaving other contexts still running, e.g., clock gating and
clock scaling. When system resume kicks start, concurrency can happen
between ufshcd_resume() and these contexts, leading to various stability
issues.

Add a check against HBA's runtime state and allowing fast path only if HBA
is runtime suspended, otherwise let system suspend go ahead call
ufshcd_suspend(). This will guarantee that these contexts are stopped by
either runtime suspend or system suspend.

Link: https://lore.kernel.org/r/1619408921-30426-4-git-send-email-cang@codeaurora.org
Fixes: 0b25773434 ("scsi: ufs: optimize system suspend handling")
Reviewed-by: Daejun Park <daejun7.park@samsung.com>
Signed-off-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-05-19 10:13:05 +02:00
..
aacraid scsi: aacraid: Improve compat_ioctl handlers 2020-12-30 11:53:02 +01:00
aic7xxx SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
aic94xx scsi: libsas: Remove notifier indirection 2021-03-25 09:04:11 +01:00
arcmsr SCSI misc on 20201023 2020-10-23 16:19:02 -07:00
arm SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
be2iscsi scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()" 2020-12-03 15:40:40 -05:00
bfa SCSI misc on 20201023 2020-10-23 16:19:02 -07:00
bnx2fc scsi: bnx2fc: Fix Kconfig warning & CNIC build errors 2021-03-04 11:38:21 +01:00
bnx2i scsi: bnx2i: Requires MMU 2020-12-02 12:59:04 -05:00
csiostor SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
cxgbi scsi: cxgb4i: Fix TLS dependency 2021-01-06 14:56:51 +01:00
cxlflash powerpc updates for 5.10 2020-10-16 12:21:15 -07:00
device_handler scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg() 2021-05-11 14:47:28 +02:00
dpt
esas2r SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
fcoe SCSI misc on 20201023 2020-10-23 16:19:02 -07:00
fnic scsi: fnic: Fix memleak in vnic_dev_init_devcmd2 2021-02-07 15:37:14 +01:00
hisi_sas scsi: hisi_sas: Fix IRQ checks 2021-05-14 09:50:27 +02:00
ibmvscsi scsi: ibmvfc: Fix invalid state machine BUG_ON() 2021-05-14 09:50:27 +02:00
ibmvscsi_tgt treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
isci scsi: isci: Pass gfp_t flags in isci_port_bc_change_received() 2021-03-25 09:04:12 +01:00
libfc scsi: libfc: Fix a format specifier 2021-05-11 14:47:31 +02:00
libsas scsi: libsas: Reset num_scatter if libata marks qc as NODATA 2021-04-21 13:00:55 +02:00
lpfc scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic 2021-05-11 14:47:31 +02:00
megaraid scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression 2021-01-27 11:55:06 +01:00
mpt3sas scsi: mpt3sas: Block PCI config access from userspace during reset 2021-05-11 14:47:13 +02:00
mvsas scsi: mvsas: Pass gfp_t flags to libsas event notifiers 2021-03-25 09:04:11 +01:00
pcmcia treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
pm8001 scsi: pm80xx: Fix potential infinite loop 2021-05-14 09:50:27 +02:00
qedf scsi: qedf: Remove redundant assignment to variable 'rc' 2020-10-02 22:07:02 -04:00
qedi scsi: qedi: Fix error return code of qedi_alloc_global_queues() 2021-03-30 14:32:07 +02:00
qla2xxx scsi: qla2xxx: Prevent PRLI in target mode 2021-05-19 10:13:04 +02:00
qla4xxx SCSI misc on 20201023 2020-10-23 16:19:02 -07:00
smartpqi scsi: smartpqi: Add new PCI IDs 2021-05-11 14:47:27 +02:00
snic scsi: snic: Simplify the return expression of svnic_cq_alloc() 2020-10-07 23:50:03 -04:00
sym53c8xx_2 SCSI misc on 20201023 2020-10-23 16:19:02 -07:00
ufs scsi: ufs: core: Narrow down fast path in system suspend path 2021-05-19 10:13:05 +02:00
.gitignore
3w-9xxx.c
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c
3w-xxxx.h
53c700_d.h_shipped
53c700.c SCSI misc on 20201023 2020-10-23 16:19:02 -07:00
53c700.h 53c700: improve non-coherent DMA handling 2020-09-25 06:20:43 +02:00
53c700.scr
a100u2w.c
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c
aha152x.c
aha152x.h
aha1542.c
aha1542.h
aha1740.c
aha1740.h
am53c974.c
atari_scsi.c
atp870u.c
atp870u.h
BusLogic.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
BusLogic.h
bvme6000_scsi.c
ch.c
constants.c
dc395x.c scsi: dc395x: Use module_pci_driver() to simplify the code 2020-10-07 21:48:28 -04:00
dc395x.h
dmx3191d.c
dpt_i2o.c scsi: dpt_i2o: Remove set but not used 'pHba' 2020-09-01 22:15:47 -04:00
dpti.h
esp_scsi.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
esp_scsi.h
fdomain_isa.c scsi: fdomain_isa: Merge branches in fdomain_isa_match() 2020-09-02 22:49:07 -04:00
fdomain_pci.c
fdomain.c
fdomain.h
FlashPoint.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
g_NCR5380.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
gdth_ioctl.h
gdth_proc.c
gdth_proc.h
gdth.c scsi: gdth: Make option_setup() static 2020-10-07 21:48:28 -04:00
gdth.h
gvp11.c
gvp11.h
hosts.c scsi: Add host and host template flag 'host_tagset' 2020-10-06 08:33:44 -06:00
hpsa_cmd.h scsi: hpsa: Update copyright 2020-09-02 22:49:06 -04:00
hpsa.c scsi: hpsa: Fix memory leak in hpsa_init_one() 2020-10-29 21:55:21 -04:00
hpsa.h scsi: hpsa: Update copyright 2020-09-02 22:49:06 -04:00
hptiop.c
hptiop.h
imm.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
imm.h
initio.c scsi: initio: Use module_pci_driver() to simplify the code 2020-10-07 21:48:28 -04:00
initio.h
ipr.c SCSI misc on 20200806 2020-08-06 16:50:07 -07:00
ipr.h
ips.c scsi: ips: Convert strnlen() to memcpy() since result should not be NUL terminated 2020-07-24 22:32:00 -04:00
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c block-5.10-2020-10-12 2020-10-13 12:12:44 -07:00
iscsi_tcp.h
jazz_esp.c scsi: jazz_esp: Add IRQ check 2021-05-14 09:50:27 +02:00
Kconfig scsi: lpfc: Add dependency on CPU_FREQ 2020-07-24 22:09:55 -04:00
lasi700.c
libiscsi_tcp.c scsi: libiscsi: use sendpage_ok() in iscsi_tcp_segment_map() 2020-10-02 15:27:08 -07:00
libiscsi.c scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling 2021-03-17 17:06:25 +01:00
mac53c94.c
mac53c94.h
mac_esp.c scsi: mac_esp: Use module_platform_driver to simplify the code 2020-10-02 21:52:53 -04:00
mac_scsi.c
Makefile
megaraid.c SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
megaraid.h
mesh.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c scsi: mvumi: Fix error return in mvumi_io_attach() 2020-10-02 21:42:22 -04:00
mvumi.h
myrb.c SCSI misc on 20201023 2020-10-23 16:19:02 -07:00
myrb.h
myrs.c scsi: myrs: Fix a double free in myrs_cleanup() 2021-03-25 09:04:09 +01:00
myrs.h
ncr53c8xx.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ncr53c8xx.h
NCR5380.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
NCR5380.h
nsp32_debug.c
nsp32_io.h
nsp32.c scsi: nsp32: Remove unneeded semicolon 2020-09-15 17:34:18 -04:00
nsp32.h
pmcraid.c scsi: pmcraid: Remove set but not used 'res' 2020-09-09 22:40:41 -04:00
pmcraid.h
ppa.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ppa.h
ps3rom.c
qla1280.c scsi: qla1280: Remove set but not used variable in qla1280_status_entry() 2020-09-09 22:37:48 -04:00
qla1280.h
qlogicfas408.c
qlogicfas408.h
qlogicfas.c
qlogicpti.c SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi_common.c
scsi_debug.c scsi: scsi_debug: Fix a memory leak 2021-02-17 11:02:27 +01:00
scsi_debugfs.c
scsi_debugfs.h
scsi_devinfo.c
scsi_dh.c
scsi_error.c SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
scsi_ioctl.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
scsi_lib_dma.c
scsi_lib.c scsi: core: Only process PM requests if rpm_status != RPM_ACTIVE 2021-01-12 20:18:16 +01:00
scsi_logging.c scsi: core: Delete unnecessary buffer allocation for every loop iteration 2020-07-24 22:09:57 -04:00
scsi_logging.h
scsi_netlink.c
scsi_pm.c scsi: block: pm: Simplify resume handling 2020-07-24 22:09:55 -04:00
scsi_priv.h scsi: core: Add limitless cmd retry support 2020-10-02 18:53:06 -04:00
scsi_proc.c
scsi_sas_internal.h
scsi_scan.c scsi: core: Don't start concurrent async scan on same host 2020-10-26 16:05:34 -04:00
scsi_sysctl.c
scsi_sysfs.c scsi: core: Show nr_hw_queues in sysfs 2020-10-06 08:33:44 -06:00
scsi_trace.c
scsi_transport_api.h
scsi_transport_fc.c scsi: fc: Add 256GBit speed setting to SCSI FC transport 2020-09-02 22:49:07 -04:00
scsi_transport_iscsi.c scsi: iscsi: Verify lengths on passthrough PDUs 2021-03-07 12:34:14 +01:00
scsi_transport_sas.c scsi: scsi_transport_sas: Add spaces around binary operator "|" 2020-08-04 20:56:56 -04:00
scsi_transport_spi.c scsi: scsi_transport_spi: Set RQF_PM for domain validation commands 2021-01-12 20:18:15 +01:00
scsi_transport_srp.c scsi: scsi_transport_srp: Don't block target in SRP_PORT_LOST state 2021-04-21 13:00:52 +02:00
scsi.c
scsi.h
scsicam.c
sd_dif.c
sd_zbc.c scsi: sd: sd_zbc: Don't pass GFP_NOIO to kvcalloc 2021-03-04 11:38:21 +01:00
sd.c scsi: sd: Fix Opal support 2021-03-04 11:38:22 +01:00
sd.h SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
sense_codes.h scsi: core: Update additional sense codes list 2020-09-15 20:28:06 -04:00
ses.c
sg.c iov_iter: transparently handle compat iovecs in import_iovec 2020-10-03 00:02:13 -04:00
sgiwd93.c sgiwd93: convert to dma_alloc_noncoherent 2020-09-25 06:20:44 +02:00
sim710.c
sni_53c710.c scsi: sni_53c710: Add IRQ check 2021-05-14 09:50:27 +02:00
sr_ioctl.c
sr_vendor.c
sr.c SCSI misc on 20201023 2020-10-23 16:19:02 -07:00
sr.h
st_options.h
st.c scsi: st: Fix a use after free in st_open() 2021-04-07 15:00:05 +02:00
st.h
stex.c
storvsc_drv.c Revert "scsi: storvsc: Validate length of incoming packet in storvsc_on_channel_callback()" 2020-12-11 09:56:17 -05:00
sun3_scsi_vme.c
sun3_scsi.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sun3x_esp.c scsi: sun3x_esp: Add IRQ check 2021-05-14 09:50:27 +02:00
sun_esp.c scsi: sun_esp: Use module_platform_driver to simplify the code 2020-10-02 21:52:55 -04:00
virtio_scsi.c SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
vmw_pvscsi.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
vmw_pvscsi.h
wd33c93.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
wd33c93.h
wd719x.c
wd719x.h
xen-scsifront.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
zalon.c
zorro7xx.c
zorro_esp.c